Grundsätze der System-API

Aus sourceDESK Wiki
Version vom 13. Januar 2019, 17:30 Uhr von Richard Reiber (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Diese Dokumentation ist veraltet. Bitte nutzen Sie die dedizierte API-Dokumentation.

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

Parameter

Parameter werden im Body der Anfrage als Query-String übergeben.

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']}";