Diese Funktion dient zum gefahrlosen Testen der Verbindung zur RS API und liefert das API-Level des Servers, ohne weitere Aktionen auszulösen. Ab API-Level 4 können auch die Rechte des verbundenen Benutzers ermittelt werden.
URL
GET /api/v1/apilevel
Optionale Parameter
Übergabe möglich in URL als ?param=value oder Form-Encoded im Request-Body
Name |
Werte |
Default |
Funktion |
doHandshake |
true/false |
false |
Falls true, muss auch der Parameter "clientApiLevel" angegeben werden. |
clientApiLevel |
integer |
- |
API-Level, für das der Client programmiert wurde. Der Server antwortet mit der Information, ob er (noch) mit diesem Level kompatibel ist oder nicht. |
format |
json/xml |
xml |
Bestimmt das Datenformat der gelieferten Antwort (JSON oder XML). |
Rückgabe
Wenn der doHandshake-Parameter nicht angegeben wurde oder false ist, oder wenn der Server älter als Version 23.0 ist:
▪ Wenn die REST API richtig angesprochen wurde (insbesondere korrekte Authentifizierung), besteht die Antwort des Servers nur aus dem aktuellen API-Level (HTTP Code 200).
▪ Alle anderen Serverantworten sind als Fehlschlag zu werten.
Wenn der doHandshake-Parameter auf "true" gesetzt wurde, und als Server eine Version ab 23.0 installiert ist:
▪ Wenn die REST API richtig angesprochen wurde (insbesondere korrekte Authentifizierung), besteht die Antwort des Servers aus einem HandshakeResult-Objekt (HTTP Code 200). Der Content-Type ist "text/xml" oder "application/json" (abhängig vom format-Parameter).
Dieses enthält folgende Angaben:
▪ ServerApiLevel (integer): Aktuelles API-Level des Servers.
▪ IsCompatibleWithClientApiLevel (boolean): Ist true, falls der Server mit dem erwarteten API-Level des Clients (siehe clientApiLevel-Parameter) kompatibel ist.
▪ UserPermissions (string-Array): Liste der Berechtigungen des aktuellen Benutzers.
Fehler (zusätzlich zu Allgemeine Fehlercodes):
Keine
Beispiele
▪ Request: GET: /api/v1/apilevel
▪ Response: 3
▪ Request: GET /api/v1/apiLevel?doHandshake=true&clientApiLevel=4&format=json
▪ Response:
{
"ServerApiLevel": 4,
"IsCompatibleWithClientApiLevel": true,
"UserPermissions": [
"AccessUI",
"ManageReportTemplates",
"ManageReportElements",
"UseTaskPlaner",
"ManageDataSources",
"ManageSystem"
]
}