Änderungen

Grundsätze der System-API

1.907 Byte hinzugefügt, 12:27, 5. Okt. 2018
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…“
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 <code>SOURCEDESK_URL/admin/api.php</code> erreichbar. Eine Funktion rufen Sie mit der URL <code>SOURCEDESK_URL/admin/api.php/FUNCTION</code> auf.

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

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

<code>Authorization: Bearer API_TOKEN</code>

== 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:

* [[System-API: Admin-Info]]
* [[System-API: Kunden]]
* [[System-API: Rechnungen]]

== PHP-Beispiel ==
Das nachfolgende Beispiel in PHP zeigt den Abruf der [[System-API: Admin-Info|Admin-Info]]:

<source lang="php">
$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']}";
</source>