Was sollte laut "REST-Ideologie" im Antworttext für PUT / POST / DELETE-Anforderungen enthalten sein?
Was ist mit Rückkehrcodes? Ist
HTTP_OK
genugWas ist der Grund für solche Konventionen, wenn überhaupt?
Ich habe einen guten Beitrag gefunden, der POST / PUT-Unterschiede beschreibt: POST vs PUT Aber meine Frage wird immer noch nicht beantwortet.
rest
http
post
http-delete
tuxSlayer
quelle
quelle
Insgesamt lauten die Konventionen „denken Sie, Sie liefern nur Webseiten“.
Für einen PUT würde ich dieselbe Ansicht zurückgeben, die Sie erhalten würden, wenn Sie unmittelbar danach einen GET durchführen würden. das würde zu einer 200 führen (vorausgesetzt, das Rendern ist natürlich erfolgreich). Für einen POST würde ich eine Umleitung zu der erstellten Ressource durchführen (vorausgesetzt, Sie führen einen Erstellungsvorgang durch; wenn nicht, geben Sie einfach die Ergebnisse zurück). Der Code für eine erfolgreiche Erstellung ist ein 201, der wirklich der einzige HTTP-Code für eine Umleitung ist, der nicht im Bereich von 300 liegt.
Ich war noch nie glücklich darüber, was ein DELETE zurückgeben sollte (mein Code erzeugt derzeit ein HTTP 204 und in diesem Fall einen leeren Körper).
quelle
PUT
Anforderung die nächste Seite zurückgibt, scheint dies eine schlechte Praxis zu sein, da das Aktualisieren der resultierenden Seite dazu führt, dass die Anforderung erneut ausgeführt wird. Stattdessen ist es für mich sinnvoll, eine Umleitung durchzuführen, vorausgesetzt, Sie haben es mit synchronen Anforderungen zu tun.PUT
Anforderung sendet, wodurch die Daten zurückgesetzt werden. Wenn beispielsweise zwei Personen auf dieselbe Seite verweisen, nimmt eine eine Aktualisierung vor, die andere führt eine Aktualisierung durch. Wenn die erste Person aktualisiert wird, um das Ergebnis zu sehen, führt dies tatsächlich dazu, dass die Dinge vor der zweiten Person zurückgesetzt werden ihre Veränderungen.Das Erstellen einer Ressource wird im Allgemeinen dem POST zugeordnet. Dies sollte den Speicherort der neuen Ressource zurückgeben. In einem Rails-Gerüst leitet ein CREATE beispielsweise zur SHOW für die neu erstellte Ressource um. Der gleiche Ansatz mag für die Aktualisierung (PUT) sinnvoll sein, aber das ist weniger eine Konvention. Ein Update muss nur den Erfolg anzeigen. Ein Löschen muss wahrscheinlich auch nur den Erfolg anzeigen. Wenn Sie umleiten möchten, ist die Rückgabe der Ressourcenliste wahrscheinlich am sinnvollsten.
Erfolg kann durch HTTP_OK angezeigt werden, ja.
Die einzige feste Regel in dem, was ich oben gesagt habe, ist, dass ein CREATE den Speicherort der neuen Ressource zurückgeben soll. Das scheint mir ein Kinderspiel zu sein; Es ist durchaus sinnvoll, dass der Kunde auf den neuen Artikel zugreifen kann.
quelle
Beim RFC7231 spielt es keine Rolle und ist möglicherweise leer
Wie wir die auf json api standard basierende Lösung im Projekt implementieren:
post / put: Gibt Objektattribute wie in get aus (Feldfilter / Relationen gelten gleich)
Löschen: Daten enthalten nur Null (für die Darstellung eines fehlenden Objekts)
Status für Standardlöschung: 200
quelle
Ich mag Alfonso Tienda Antwort vom HTTP-Statuscode zum Aktualisieren und Löschen?
Hier sind einige Tipps:
LÖSCHEN
STELLEN
quelle