Unified Request Layout
Im folgenden werden die globalen Konfigurationsparameter eines jeden Requests erklärt. Diese sind unabhängig von den einzelnen jeweils aufgerufenen Methoden und konfigurieren das generelle Verhalten der API pro Request.
Folgende globalen Parameter existieren:
- Functions
- Version
- Api-Key
- Strict
- Warnings
- Lenient
- NoCache
- ReadOnly
- Force Named
- User Token
- Internationalization
Beschreibung der einzelnen Funktionsparameter
functions
Ein Wert vom Typ string
als CSV (comma separated value).
Mit diesem String wird definiert welche Funktion(en) an der API ausgeführt werden soll(en).
Für jede Funktion die übergeben wird, muss auch ein Set an Aufrufparametern angegeben werden.
Beispiel: Login,GetTags
v
Version
Repräsentiert das API-Level as Ganzzahl. Änderungen an den Return-Formaten werden bei Updates immer für neuere API Level zur Verfügung gestellt, damit alte Clients weiter funktional bleiben können. Daher ist es nötig bei der Implementierung neuer Funktionen das API Level für calls u.U. anzupassen.
Beispiel: 17
apiKey
Für jeden Aufruf an der API muss ein gültiger API Key mitgesendet werden. Über diesen wird die aufrufende Applikation identifiziert.
API Keys können z.b. auf Caller-IPs oder Domains restriktiert werden.
Um einen API Key auf eine Domain zu restriktieren, muss ein gültiger reverse DNS Eintrag am Nameserver konfiguriert sein.
Beispiel: mySuperNotSecretApiKey
strict
Definiert ob die API im strikten Modus läuft. Erlaubt sind die Werte true
und false
Im strikten Modus ist die Antwort auf jede angefragte Methode in ein Array verpackt. Im nicht-strikten Modus wird das Array ausgelassen, wenn nur eine einzelne Antwort enthalten ist. Dies spart Payload, stellt aber höhere Anforderungen an den Client, da das Antwort-Format von der Anfrage abhängt.
Standard: false
warnings
Definiert ob die API Warnings im Response-JSON einbetten soll. Erlaubt sind die Werte true
und false
.
Diese Einstellung wird nur für die Entwicklung empfohlen, da Kommentare üblichweise in JSON nicht zulässig sind und viele Standard Implementierungen Parser-Fehler erzeugen werden.
Standard: false
lenient
Definiert ob die API im lenient
, also durchlässigen Modus arbeitet. Erlaubt sind die Werte true
und false
.
Ist Lenient aktiviert, gibt die API für alle gleichzeitig angefragten Methoden eine Antwort,
auch wenn z.B. die erste Methode direkt einen Fehler produziert.
Dieser Modus ist hilfreich, wenn Teilergebnisse bei der Anfrage optional sind.
Standard: false
nocache
API Methoden haben einen Standard Cache von 60s für ein (request, response) Tupel um die Load auf der API bei häufigen, redundaten Anfragen zu verbessern. Einzelne API Methoden haben ggf. ein längeres, oder gar kein Cache Timeout (siehe RPC Dokumentation der einzelnen API Methode).
Das Caching kann durch den Paramter nocache
extern ausgeschaltet werden. Clients sollten ein Berechtigtes Interesse haben, den cache bypass zu aktivieren.
Dieser Modus ist hilfreich beim Debugging von API Requests.
Standard: false
readonly
Schreibende Aufrufe an die API werden vom System automatisch beim ersten Login eines Clients mit Schreibberechtigungen bis zum Logout des selbigen für andere Clients gesperrt. Alle Requests an die API für diesen Guide werden abgelehnt.
Um dennoch Daten auslesen zu können (z.B. den Status des Locks), kann der Paramter readonly
an die API mitgesendet werden.
Damit verzichtet der Client auf seine Schreibrechte und bekommt ein normales, Read-Only Lock von der API zugeteilt.
Bis zum Logout oder Aquirement des Write-Locks kann der Client keine Daten an der API schreiben.
forceNamed
Einzelne API Methoden definieren ihre Parameter In-Order oder über den Parameter-Namen.
Erlaubt sind die Werte true
und false
.
Ist forcedNamed
aktiviert, wird die API-seitige Einstellung überschrieben und immer über den Parameter-Namen gemappt.
In neuen Clients sollte diese Option immer aktiviert sein.
In einer frühen Version dieser API mussten Parameter eines API-Calls immer in der gleichen Reihenfolge angegeben werden, wie Sie im executor
definiert sind. Dafür war die bezeichnung der Parameter beliebig.
Dieser Zustand ist aus Rückwärtskompatibilitätsgründen immer noch die Standard einstellung, es wird aber empfohlen diese Einstellung durch das Feld forceNamed
zu ändern, da ein Mapping über den Parameternamen Fehler vermeidet.
Einige JSON Serializer implementierungen sortieren die Keys in JOSN Objekten beim erstellen automatisch um, sodass es bei einem Aufruf ohne forceNamed: true
zu falschen Parameter-Mappings kommt.
Standard: false
userToken
Hat man z.B. über die Methode Login
bereits ein gültiges UserToken erhalten,
kann dieses an später aufgerufene Methoden wieder übergeben werden.
Hierdurch spart man sich eine neue Authentifizierung, bis das Usertoken abläuft.
Diese Einstellung ist besonders praktisch für Clients ohne Cookie-Unterstützung. Sind Cookies am Client aktiv (z.B. in üblichen Browsern) wird hier ein Token automatisch gesetzt und wiederverwendet.
i18n
Hier wird die angeforderte Sprache konfiguriert.
Es können entweder eine Sprache z.B. de_DE
oder auch mehrere Sprachen
mit z.B. de_DE,en_UK
angefragt werden.
Manche API-Methoden unterstützen keine Rückgaben in mehr als einer Sprache. Bei der Verwendung mit mehreren Sprachen wird eine Exception zurückgegeben.