Die API befindet sich aktuell in einer Testphase (Beta) kontrollieren Sie unbedingt jede Aktion um Fehlkonfigurationen und Ausfälle Ihrer gebuchten Produkte zu vermeiden.
Die API antwortet mit verschiedenen HTTP-Statuscodes die wie allgemein üblich interpretiert werden sollten.
Sie Authentifizieren sich bei der API über ein Authentifizierungs-Token, welches im Header jeder Anfrage mitgesendet werden muss.Authorization: Bearer %TOKEN%
Um dieses temporäre Token zu erstellen, nutzen Sie die Funktion Authentifizierungs-Token erstellen.
Um ein Token zu erhalten, benötigen Sie ein API-Benutzerkonto. Dies können Sie in der API-Benutzerkontenverwaltung in unserem Webinterface einrichten.
Pfad: | /auth/token |
---|---|
Methode: | POST |
Parameter | Notwendig | Typ | Beschreibung |
---|---|---|---|
login | Ja | String | Der Benutzername des API-Kontos für den ein Token erstellt werden soll. |
password | Ja | String | Das zum Benutzernamen zugehörige Passwort. |
Sie erhalten ein JSON kodiertes Objekt mit folgenden Feldern zurück:
Feld | Typ | Beschreibung |
---|---|---|
token | String | Ihr temporäres Authentifizierungs-Token um alle weiteren Funktionen der API zu benutzen. |
expires | Int | Die Gültigkeitsdauer des Tokens in Sekunden. |
curl --request POST --data '{"login":"%USERNAME%","password":"%PASSWORD%"}' https://beta.api.core-networks.de/auth/token
{"token":"%TOKEN%","expires":%EXPIRES%}
Mit der nachfolgenden Funktion erhalten Sie eine Liste alle DNS-Zonen die Sie aktuell angelegt haben.
Pfad: | /dnszones/ |
---|---|
Methode: | GET |
Sie erhalten ein JSON kodiertes Array mit Objekten zurück, welches je für eine Zone steht. Die Objekte enthalten die folgenden Felder:
Feld | Typ | Beschreibung |
---|---|---|
name | String | Name der Zone |
type | String | Der Zonentyp. Dieser kann entweder "master" oder "slave" enthalten. |
curl -H "Authorization: Bearer %TOKEN%" https://beta.api.core-networks.de/dnszones/
[{"name":"example.com","type":"master"},{"name":"example.net","type":"slave"}]
Mit der nachfolgenden Funktion erhalten Sie detaillierte Informationen zu einer DNS-Zone.
Pfad: | /dnszones/%ZONE% |
---|---|
Methode: | GET |
Sie erhalten ein JSON kodiertes Objekten mit folgenden Feldern zurück:
Feld | Typ | Beschreibung | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
active | Bool | Status ob die Zone auf den Nameservern aktiv ist. | |||||||||
dnssec | Bool | Status ob die Zone mittels DNSSEC signiert wird. | |||||||||
master | NULL | String | Bei Slave-Zonen die IP-Adresse (IPv4/IPv6) des Master-Servers. | |||||||||
name | String | Name der Zone | |||||||||
tsig | NULL | Objekt | Wenn der Zone ein TSIG-Schlüssel hinterlegt ist wird dieser als Objekt mit folgenden Feldern zurückgegeben:
|
|||||||||
type | String | Der Zonentyp. Dieser kann entweder "master" oder "slave" enthalten. |
curl -H "Authorization: Bearer %TOKEN%" https://beta.api.core-networks.de/dnszones/example.com
{"active":true,"dnssec":true,"master":null,"name":"example.com","tsig":null,"type":"master"}
Diese Funktion gibt Ihnen eine Liste der zur Zone gehörenden DNS-Records zurück.
Diese Liste kann von den DNS-Records, die die Nameserver ausliefern abweichen sofern noch kein Commit durchgeführt wurde oder die DNS-Zone Fehler enthält und daher nicht von den Nameservern angenommen wird.
Pfad: | /dnszones/%ZONE%/records/ |
---|---|
Methode: | GET |
Sie erhalten ein JSON kodiertes Array mit Objekten zurück, welches je für einen DNS-Record steht. Die Objekte enthalten die folgenden Felder:
Feld | Typ | Beschreibung |
---|---|---|
name | String | Name des Records relativ zur Zone. z.B. "www" oder "@" für die Apex Zone (Root) selbst. |
ttl | Int | TTL des DNS-Records |
type | String | Record-Type |
data | String | Dateninhalt des Records |
Sie können die Liste der zurückgegebenen Records filtern, indem Sie die gesuchten Felder als GET Parameter an die URL anhängen. Sofern Sie mehrmals nach dem gleichen Feld filtern möchten, muss dieser Parameter als Array übergeben werden.
Abfrage alles NS-Records der Zone.
curl -H "Authorization: Bearer %TOKEN%" https://beta.api.core-networks.de/dnszones/example.com/records/?type=NS
[{"name":"@","ttl":"86400","type":"NS","data":"ns2.core-networks.eu."},{"name":"@","ttl":"86400","type":"NS","data":"ns3.core-networks.com."},{"name":"@","ttl":"86400","type":"NS","data":"ns1.core-networks.de."}]
Abfrage alles NS- sowie SOA-Records der Zone.
curl -H "Authorization: Bearer %TOKEN%" https://beta.api.core-networks.de/dnszones/example.com/records/?type[]=NS\&type[]=SOA
[{"name":"@","ttl":"86405","type":"SOA","data":"ns1.core-networks.de. hostmaster.core-networks.de. 2017122001 28800 7200 604800 1800"},{"name":"@","ttl":"86400","type":"NS","data":"ns2.core-networks.eu."},{"name":"@","ttl":"86400","type":"NS","data":"ns3.core-networks.com."},{"name":"@","ttl":"86400","type":"NS","data":"ns1.core-networks.de."}]
Mit dieser Funktion fügen Sie der Zone DNS-Records hinzu.
Aktuell ist es notwendig, dass Sie nachdem Sie alle gewünschten Records hinzugefügt bzw. gelöscht haben die Änderungen an die Nameserver übertragen. Hierzu nutzen Sie die Funktion Commit. Wird kein Commit durchgeführt, bleiben die Änderungen dennoch in der Datenbank und werden mit dem nächsten Commit Live gehen.
Pfad: | /dnszones/%ZONE%/records/ |
---|---|
Methode: | POST |
Als POST-Daten übermitteln Sie ein JSON Objekt mit folgenden Parametern
Feld | Notwendig | Typ | Beschreibung |
---|---|---|---|
name | Ja | String | Name des Records |
ttl | Nein | Int | TTL des DNS-Records |
type | Ja | String | Record-Type |
data | Ja | String | Dateninhalt des Records |
Beim Hinzufügen eines bereits existierenden Records, wird kein zweiter erstellt, aber auch kein Fehler gemeldet.
curl -H "Authorization: Bearer %TOKEN%" --request POST --data '{"name":"www","ttl":3600,"type":"A","data":"127.0.0.1"}' https://beta.api.core-networks.de/dnszones/example.com/records/
Diese Funktion löscht alle DNS-Records einer Zone die zu dem übergebenen DNS-Record passen.
Wenn Sie keinen DNS-Record in den POST-Daten übermitteln werden sämtliche DNS-Records der Zone gelöscht.
Aktuell ist es notwendig, dass Sie nachdem Sie alle gewünschten Records hinzugefügt bzw. gelöscht haben die Änderungen an die Nameserver übertragen. Hierzu nutzen Sie die Funktion Commit. Wird kein Commit durchgeführt, bleiben die Änderungen dennoch in der Datenbank und werden mit dem nächsten Commit Live gehen.
Pfad: | /dnszones/%ZONE%/records/delete |
---|---|
Methode: | POST |
Als POST-Daten übermitteln Sie ein JSON Objekt das dem zu löschenden DNS-Record entspricht. Sie können mehrere DNS-Records löschen indem Sie einzelne Felder weglassen.
Löschen aller Records mit Namen "www" und dem Dateninhalt "127.0.0.1" der Zone "example.com"
curl -H "Authorization: Bearer %TOKEN%" --request POST --data '{"name":"www","data":"127.0.0.1"}' https://beta.api.core-networks.de/dnszones/example.com/records/delete
SOA-Records müssen und können auch nicht gelöscht werden. Wenn Sie einen SOA-Record erstellen, überschreibt dieser den bisherigen.
Sofern Sie zwei absolut identische DNS-Records habe, können Sie diese nicht einzeln löschen. Sie müssen hier zunächst beide löschen und anschließend einen wieder hinzufügen.
Unser aktuelles Backend für die Nameserver ist nicht für die hochfrequente Bearbeitung der DNS-Records geeignet. Damit Sie größere Änderungen an DNS-Zonen dennoch zügig durchführen können ohne auf die Nameserver warten zu müssen, werden Änderungen an den DNS-Records nicht sofort an die Nameserver übertragen. Stattdessen müssen Sie, wenn Sie mit den Änderungen der DNS-Records fertig sind, einen Commit an die Zone senden.
Wird kein Commit durchgeführt, bleiben die Änderungen dennoch in der Datenbank und werden mit dem nächsten API-Commit oder auch von internen Prozessen auf die Nameserver übertragen.
Pfad: | /dnszones/%ZONE%/records/commit |
---|---|
Methode: | POST |
curl -H "Authorization: Bearer %TOKEN%" --request POST https://beta.api.core-networks.de/dnszones/example.com/records/commit