Verwendung

Die Appack Programmierschnittstelle ist technisch ein GraphQL Endpoint. Dies bedeutet, dass HTTP POST Requests mit einem JSON Payload gemäß der GraphQL Spezifikation gesendet werden müssen.

Der GraphQL Endpoint lautet: https://api.appack.de/graphql

Alle Aufrufe müssen authentifiziert sein, was durch ein Bearer Token erfolgt, das als Header mit jedem Request gesendet wird. Dieses Token muss dem JWT-Standard entsprechen, damit Informationen über den Aufrufer, seine Berechtigungen und die Gültigkeit des Tokens darin enthalten sind. Der initiale API-Token, den Sie erhalten, dient dazu, ein Access Token für API-Aufrufe zu erzeugen.

Token-Typen

Token Beschreibung

API-Token

Gültig so lange der API-Zugriff besteht, in der Regel so lange, wie die App betrieben wird. Es enthält Informationen darüber, wer im Kontext welcher App welche Operationen durchführen darf.

Access Token

Wird zur Authentifizierung von API-Aufrufen verwendet und ist nur 1 Stunde gültig. Es enthält Informationen über Benutzer, App-Kontext und Berechtigungen zum Zeitpunkt der Token-Erstellung.

Beispiel: Access Token erzeugen

So erzeugen Sie mithilfe Ihres API-Tokens ein Access Token:

curl -g -X POST -H "Content-Type: application/json" \
 -H "Authorization: Bearer <API-Token>" \
-d '{"query":"{getToken}"}' \
https://api.appack.de/graphql | jq '.data.getToken'
fetch("https://api.appack.de/graphql", {
    method: 'POST',
    headers: {
        'Authorization': 'Bearer <API-Token>',
        'Content-Type': 'application/json',
        'Accept': 'application/json'
    },
    body: JSON.stringify({query: "{getToken}"})
}).then(r => r.json()).then(response => {
        console.log(response.data)
})
public class GraphQLFetcher {
    public static void main(String[] args) throws Exception {
        OkHttpClient client = new OkHttpClient();
        RequestBody body = RequestBody.create("{\"query\":\"{getToken}\"}", MediaType.get("application/json; charset=utf-8"));
        Request request = new Request.Builder()
                .url("https://api.appack.de/graphql")
                .post(body)
                .addHeader("Authorization", "Bearer <API-Token>")
                .addHeader("Accept", "application/json")
                .build();

        try (Response response = client.newCall(request).execute()) {
            if (response.body() != null) {
                System.out.println(response.body().string());
            }
        }
    }
}
<?php

$ch = curl_init("https://api.appack.de/graphql");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "query": "{getToken}" }');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer <API-Token>',
    'Content-Type: application/json',
    'Accept: application/json'
]);

echo json_decode(curl_exec($ch), true)['data'];
curl_close($ch);