Grundsätze der System-API: Unterschied zwischen den Versionen

Aus sourceDESK Wiki
Wechseln zu: Navigation, Suche
(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…“)
 
Zeile 12: Zeile 12:
  
 
<code>Authorization: Bearer API_TOKEN</code>
 
<code>Authorization: Bearer API_TOKEN</code>
 +
 +
== Parameter ==
 +
Parameter werden im Body der Anfrage als Query-String übergeben.
  
 
== Rückgabeformat ==
 
== Rückgabeformat ==

Version vom 5. Oktober 2018, 12:29 Uhr

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