Vereinfachte Integration

Unsere Nameserver: Das ist die neue API

Vor Kurzem haben wir eine neue REST API für unsere Nameserver (DNS Server) aufgeschaltet. Wir zeigen dir, wofür du diese nutzen kannst und was du dabei beachten solltest.

Weshalb eine neue API?

Wie du vielleicht weisst, verfügen unsere Nameserver bereits über eine für unsere Kunden zugängliche API. Diese basiert jedoch noch auf dem SOAP Protokoll und ist bereits etwas in die Jahre gekommen. Unsere neue REST API vereinfacht die Integration in moderne Applikationen. Ausserdem haben wir grossen Wert auf eine umfassende Dokumentation gelegt.

Wofür kann ich die API verwenden?

Mithilfe der API können alle Vorgänge automatisiert werden, welche über unser DNS Panel vorgenommen werden können. Diese Automatisierung bringt hauptsächlich in all jenen Anwendungsfällen etwas, in denen öfters dieselben oder sehr ähnliche Vorgänge ausgeführt werden. Wenn einer der folgenden Fälle auf dich zutrifft, ist die API genau das Richtige für dich:

Hosting Reseller

Du bist Hosting Reseller bei hosttech und möchtest den Bestellprozess für deine Kunden automatisieren. Alternativ kannst du hier auch unser WHMCS Modul verwenden, welches bereits unsere DNS API für dich anbindet.

Dynamische IP

Du hast im Büro oder Zuhause eine dynamische IP, betreibst da aber einen Server welcher von extern erreichbar sein sollte. Mit der DNS API kannst du die IP automatisch aktualisieren, sobald sich diese ändert.

SSL Validierung

Die meisten SSL Anbieter bieten die Domainvalidierung via DNS an, so auch der beliebte Gratis-Provider Let’s Encrypt. Eine Integration der DNS API in deinen SSL Validierungsprozess ermöglicht dir zum Beispiel das automatische Verlängern von Zertifikaten, bei welchen eine HTTP Validierung technisch nicht möglich oder nicht erlaubt ist (z.B. Wildcard Zertifikate bei Let’s Encrypt).

Wie wird die API verwendet?

  1. Um die API verwenden zu können benötigst du als Erstes einen Account zu unserem DNS System.
    Wenn du bereits über einen Account verfügst, musst du als Erstes ein Token erstellen, um mit der API kommunizieren zu können. Dazu meldest du dich im myhosttech Kundencenter an, navigierst zu «Domains / DNS Editor / API» und erstellst da dein erstes Token. Alternativ besteht auch die Möglichkeit, ein Token über die API zu lösen. Sende dazu einen POST Request an den Endpunkt /api/v1/auth/personal-access-tokens/credentials.

    Bitte bewahre das soeben erstellte Token sicher auf, da es vollen Zugriff auf alle deine DNS Zonen ermöglicht!  Sollte dir das Token trotzdem einmal abhandenkommen, kannst du es jederzeit widerrufen bzw. löschen.
     
  2. Sobald du das Token hast, bist du bereit loszulegen. Die einfachste Möglichkeit um die Funktionsweise der API auszuprobieren, ist direkt in unserer interaktiven Dokumentation. Klicke zuerst auf den grünen Button «Authorize» und gib dort dein soeben erstelltes Token ein.
     
  3. Anschliessend kannst du alle API Endpunkte direkt in der Dokumentation ausprobieren. Selbstverständlich kannst du auch jeden beliebigen anderen REST Client wie zum Beispiel Postman verwenden.

Achtung: Zum sicheren Testen empfehlen wir eine Test Zone anzulegen und nicht mit einer bestehenden, produktiven Zone zu experimentieren!

Um die korrekte Funktion von Zonen zu testen, kannst du Tools wie beispielsweise nslookup verwenden. Um die Änderungen möglichst zeitnah testen zu können und um mögliche Verzögerungen durch Caching auf den Resolver Server zu umgehen, empfehlen wir direkt unsere Nameserver anzusprechen.

Beispielabfrage mit «nslookup» für den A-Record von blog-test.ch

Beachte, dass Änderungen an deiner Zone erst nach wenigen Minuten abgefragt werden können.

Code Beispiel in PHP

Das nachfolgende Beispiel zeigt, wie eine Zone geladen und anschliessend ein A Record verändert werden kann. Dieses Vorgehen kann beispielsweise genutzt werden, um automatisch eine IP Änderung vorzunehmen.

Für eine möglichst einfache und generische Code-Darstellung wurde in diesem Beispiel der HTTP-Client von Laravel verwendet. Dasselbe Prinzip funktioniert jedoch mit allen gängigen HTTP-Clients und Programmiersprachen.