Interpretation einer API-Antwort
Jede API-Anfrage generiert eine Antwort an den Client. Sie sollten die Antwort überprüfen, um festzustellen, ob sie erfolgreich war, und weitere Daten nach Bedarf abrufen.
HTTP-Statuscode
Im Folgenden werden die von der SnapCenter REST API verwendeten HTTP-Statuscodes beschrieben.
Codieren | Beschreibung |
---|---|
200 |
OK Zeigt Erfolg für Anrufe an, die kein neues Objekt erstellen. |
201 |
Erstellt Ein Objekt wurde erfolgreich erstellt. Der Positionskopf in der Antwort enthält die eindeutige Kennung für das Objekt. |
202 |
Akzeptiert Ein Hintergrundjob wurde gestartet, um die Anforderung auszuführen, ist aber noch nicht abgeschlossen. |
400 |
Schlechte Anfrage Die Eingabe der Anfrage ist nicht erkannt oder nicht angemessen. |
401 |
Nicht Autorisiert Benutzerauthentifizierung fehlgeschlagen. |
403 |
Verboten Der Zugriff ist aufgrund eines Autorisierungsfehlers (RBAC) verweigert. |
404 |
Nicht gefunden Die Ressource, auf die in diesem Antrag verwiesen wird, ist nicht vorhanden. |
405 |
Methode nicht zulässig Die HTTP-Methode in der Anforderung wird für die Ressource nicht unterstützt. |
409 |
Konflikt Der Versuch, ein Objekt zu erstellen, ist fehlgeschlagen, weil zunächst ein anderes Objekt erstellt werden muss oder das angeforderte Objekt bereits vorhanden ist. |
500 |
Interner Fehler Ein allgemeiner interner Fehler ist auf dem Server aufgetreten. |
Antwortkopfzeilen
In der vom SnapCenter erzeugten HTTP-Antwort sind mehrere Header enthalten.
Standort
Wenn ein Objekt erstellt wird, enthält die Standortkopfzeile die komplette URL zum neuen Objekt einschließlich der eindeutigen Kennung, die dem Objekt zugewiesen ist.
Inhaltstyp
Dies ist normalerweise der Fall application/json
.
Antwortkörper
Der Inhalt des Antwortkörpers, der sich aus einer API-Anforderung ergibt, hängt vom Objekt, dem Verarbeitungstyp und dem Erfolg oder Misserfolg der Anforderung ab. Die Antwort wird immer in JSON gerendert.
Einzelnes Objekt
Je nach Anforderung kann ein einzelnes Objekt mit einer Reihe von Feldern zurückgegeben werden. Beispielsweise können Sie GET verwenden, um ausgewählte Eigenschaften eines Clusters mit der eindeutigen Kennung abzurufen.
Mehrere Objekte
Es können mehrere Objekte aus einer Ressourcensammlung zurückgegeben werden. In allen Fällen wird ein konsistentes Format verwendet, mit num_records
Angabe der Anzahl der Datensätze und Datensätze, die ein Array der Objektinstanzen enthalten. Beispielsweise können Sie die in einem bestimmten Cluster definierten Nodes abrufen.
Jobobjekt
Wenn ein API-Aufruf asynchron verarbeitet wird, wird ein Job-Objekt zurückgegeben, das den Hintergrund-Task ankers. Beispielsweise wird die PATCH-Anfrage, die zum Aktualisieren der Cluster-Konfiguration verwendet wird, asynchron verarbeitet und ein Job-Objekt zurückgegeben.
Fehlerobjekt
Wenn ein Fehler auftritt, wird immer ein Fehlerobjekt zurückgegeben. Beispielsweise erhalten Sie einen Fehler beim Versuch, ein Feld zu ändern, das nicht für ein Cluster definiert ist.
Leer
In bestimmten Fällen werden keine Daten zurückgegeben und der Antwortkörper enthält ein leeres JSON-Objekt.
Fehler
Wenn ein Fehler auftritt, wird ein Fehlerobjekt im Antwortkörper zurückgegeben.
Formatieren
Ein Fehlerobjekt hat das folgende Format:
"error": { "message": "<string>", "code": <integer>[, "target": "<string>"] }
Sie können den Codewert verwenden, um den allgemeinen Fehlertyp oder die allgemeine Fehlerkategorie zu bestimmen, und die Meldung, um den spezifischen Fehler zu ermitteln. Wenn verfügbar, enthält das Zielfeld die spezifische Benutzereingabe, die mit dem Fehler verknüpft ist.
Allgemeine Fehlercodes
Die gängigen Fehlercodes werden in der folgenden Tabelle beschrieben. Spezifische API-Aufrufe können zusätzliche Fehlercodes enthalten.
Codieren | Beschreibung |
---|---|
409 |
Ein Objekt mit derselben Kennung ist bereits vorhanden. |
400 |
Der Wert für ein Feld hat einen ungültigen Wert oder fehlt oder es wurde ein zusätzliches Feld angegeben. |
400 |
Der Vorgang wird nicht unterstützt. |
405 |
Ein Objekt mit der angegebenen Kennung wurde nicht gefunden. |
403 |
Die Berechtigung zur Durchführung der Anforderung wird verweigert. |
409 |
Die Ressource wird verwendet. |