Zuletzt geändert am 5. Oktober 2018 um 12:27

Grundsätze der System-API

Version vom 5. Oktober 2018, 12:27 Uhr von Richard Reiber (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „sourceDESK bietet eine API für Administratoren an, um Objekte im System zu verwalten. Jeder Administrator mit entsprechenden Rechten kann einen eigenen API-Sc…“)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

sourceDESK bietet eine API für Administratoren an, um Objekte im System zu verwalten. Jeder Administrator mit entsprechenden Rechten kann einen eigenen API-Schlüssel bekommen, dieser kann abgerufen werden, indem Sie auf Ihren Namen rechts oben in der Administration klicken und den Punkt "API" auswählen.

Mit dem API-Schlüssel können Aktionen in Ihrem Namen und mit Ihren Rechten ausgeführt werden.

Aufruf der API

Die API ist unter SOURCEDESK_URL/admin/api.php erreichbar. Eine Funktion rufen Sie mit der URL SOURCEDESK_URL/admin/api.php/FUNCTION auf.

Relevant für einen Aufruf ist nach dem REST-Prinzip die HTTP-Methode. Unterstützt werden je nach Funktion GET, POST, PUT und DELETE.

Authentifizierung

Die Authentifizierung erfolgt über den API-Schlüssel. Es ist ein entsprechender HTTP-Header zu setzen:

Authorization: Bearer API_TOKEN

Rückgabeformat

Sämtliche Rückgaben erfolgen im JSON-Format. Im Fehlerfall erhalten Sie ein "error"-Element mit einer Fehlerbeschreibung.

Unterstützte Funktionen

Die System-API ist derzeit noch in Entwicklung und unterstützt zum jetzigen Zeitpunkt folgende Funktionen/Objekte:

PHP-Beispiel

Das nachfolgende Beispiel in PHP zeigt den Abruf der Admin-Info:

$ch = curl_init("SOURCEDESK_URL/admin/api.php/me");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Authorization: Bearer API_TOKEN"
]);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
$res = json_decode(curl_exec($ch), true);
curl_close($ch);
 
if (!is_array($res)) {
    die("Invalid response");
}
 
if (!empty($res['error'])) {
    die($res['error']);
}
 
echo "Hello, {$res['name']}";