Code-Beispiele

Code-Beispiele um die Verwendung der API zu verdeutlichen.

Verfügbarkeit testen

Um die Verfügbarkeit der API sowie den eigenen Code zu testen, kann der API Endpunkt [GET] /ping kontaktiert werden. Die Verfügbarkeit ist gegeben, wenn die API mit pong antwortet.


Anfrage
PHP
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://<HOSTNAME>/api/v2/ping');
curl_setopt($curl, CURLOPT_HTTPHEADER, [
  'X-API-KEY: <API-KEY>',
  'Content-Type: application/json',
]);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl);

Bash
curl -X 'GET' \
  'https://<HOSTNAME>/api/v2/ping' \
  -H 'accept: application/json' \
  -H 'X-API-Key: <API-KEY>'


Antwort

HTTP-Status-Code: 200

{
  "response": "pong"
}

Benutzer anlegen

Um einen Benutzer anzulegen, verwendet man den API-Endpunkt [POST] /clients. Über das Feld id_hosting_plan bestimmen Sie, welche Ressourcen und Berechtigungen dieser neue Benutzer besitzen darf.

Über den Endpunkt [GET] /hosting-plans kann ermittelt werden, welche ID, welcher Konto-Vorlage zugeordnet ist. Die ID der gewünschten Konto-Vorlage verwenden Sie dann als Wert für das id_hosting_plan Feld. Existieren noch keine Konto-Vorlagen, müssen diese zunächst erstellt werden.

Im Folgenden soll das Anlegen eines Benutzers webhosting-001 und das übertragen der Einstellungen einer Konto-Vorlage mit dem Namen HostingPlus demonstriert werden.


Konto-Vorlagen auslesen

Über den API-Endpunkt [GET] /hosting-plans können alle im KeyHelp angelegten Konto-vorlagen abgefragt werden.

Über den API-Endpunkt [GET] /hosting-plans/name/<NAME> können gezielt die Daten einer Konto-Vorlage mit dem gewünschten Namen abgefragt werden, wie in der folgenden Anfrage verdeutlicht.


Anfrage
PHP
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://<HOSTNAME>/api/v2/hosting-plans/name/HostingPlus');
curl_setopt($curl, CURLOPT_HTTPHEADER, [
  'X-API-KEY: <API-KEY>',
  'Content-Type: application/json',
]);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl);

Bash
curl -X 'GET' \
  'https://<HOSTNAME>/api/v2/hosting-plans/name/HostingPlus' \
  -H 'accept: application/json' \
  -H 'X-API-Key: <API-KEY>'


Antwort

HTTP Status-Code: 200

{
  "id": 3,
  "name": "HostingPlus",
  "resources": { ... },
  "permissions": { ... },
  "php": { ... },
  "php_fpm": { ... }
}

Benutzer anlegen

Zum Anlegen des Benutzers verwenden wir den Endpunkt [POST] /clients.
Aus der vorangegangen Anfrage der Konto-Vorlage übernehmen wir den Wert des Feldes id und geben ihn als Wert für das Feld id_hosting_plan an. 
Als API-Antwort erhalten wir die ID des soeben angelegten Benutzers, sowie dessen zufällig generiertes Passwort.


Anfrage
PHP
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, 'https://<HOSTNAME>/api/v2/clients');
    curl_setopt($curl, CURLOPT_HTTPHEADER, [
        'X-API-KEY: <API-KEY>',
        'Content-Type: application/json',
    ]);
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode([
        'username' => 'webhosting-001',
        'id_hosting_plan' => 3,
    ]));
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    $result = curl_exec($curl);

Bash
curl -X 'POST' \
  'https://<HOSTNAME>/api/v2/clients' \
  -H 'accept: application/json' \
  -H 'X-API-Key: <API-KEY>' \
  -d '{ "username": "webhosting-001", "id_hosting_plan": 3 }'


Antwort

HTTP Status-Code: 201

{
    "id": 23,
    "password": "ry[Pm-^Hv+5E"
}

Domain anlegen und Benutzer zuweisen

Um einen neue Domain anzulegen und einem bestehenden Benutzer zuzuweisen, verwendet man den API-Endpunkt [POST] /domains. Über das Feld id_user bestimmen Sie, welchem Benutzer die Domain zugewiesen werden soll.

Über den Endpunkt [GET] /clients können zunächst alle vorhandenen Benutzer auf dem Server ermittelt werden. Die ID des gewünschten Benutzers verwenden Sie dann als Wert für das Feld id_user. Existiert noch kein Benutzeraccount, muss zunächst mindestens ein Benutzer angelegt werden.

Im Folgenden soll das Anlegen einer Domain example.com und dessen Zuweisung an einen Benutzer webhosting-001 demonstriert werden.


Benutzer auslesen

Über den API-Endpunkt [GET] /clients können alle im KeyHelp angelegten Benutzerkonten abgefragt werden.

Über den API-Endpunkt [GET] /clients/name/<NAME> können gezielt die Daten eines Benutzerkontos mit dem gewünschten Namen abgefragt werden, wie in der folgenden Anfrage verdeutlicht.


Anfrage
PHP
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://<HOSTNAME>/api/v2/clients/name/webhosting-001');
curl_setopt($curl, CURLOPT_HTTPHEADER, [
  'X-API-KEY: <API-KEY>',
  'Content-Type: application/json',
]);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl);

Bash
curl -X 'GET' \
  'https://<HOSTNAME>/api/v2/clients/name/webhosting-001' \
  -H 'accept: application/json' \
  -H 'X-API-Key: <API-KEY>'


Antwort

HTTP Status-Code: 200

{
    "id": 23,
    "username": "webhosting-001",
    ... 
}

Domain anlegen

Zum Anlegen einer Domain verwenden wir den Endpunkt [POST] /domains.
Aus der vorangegangen Anfrage der Konto-Vorlage übernehmen wir den Wert des Feldes id und geben ihn als Wert für das Feld id_user an. 
Als API-Antwort erhalten wir die ID der soeben hinzugefügten Domain.


Anfrage
PHP
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, 'https://<HOSTNAME>/api/v2/domains');
    curl_setopt($curl, CURLOPT_HTTPHEADER, [
        'X-API-KEY: <API-KEY>',
        'Content-Type: application/json',
    ]);
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode([
        'domain' => 'example.com',
        'id_user' => 23,
    ]));
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    $result = curl_exec($curl);

Bash
curl -X 'POST' \
  'https://<HOSTNAME>/api/v2/domains' \
  -H 'accept: application/json' \
  -H 'X-API-Key: <API-KEY>' \
  -d '{ "domain": "example.com", "id_user": 23 }'


Antwort

HTTP Status-Code: 201

{
    "id": 193
}