2017-11-13 7 views
0

Welcher HTTP-Antwortcode sollte zurückgegeben werden, wenn eine POST-Anforderung nicht erfolgreich war und ein Anfragetext korrekt formatiert wurde?Welcher HTTP-Antwortcode für fehlgeschlagene POST-Anforderungen?

Für eine erfolgreiche POST-Anfrage verwende ich 201 - Erstellt, aber es gibt keinen entsprechenden nicht erstellten Code.

Ich denke entweder 400 - schlechte Anfrage, aber das würde tatsächlich zeigen Benutzer, dass eine Anfrage schlecht formatiert oder 304 - nicht geändert wird.

+2

Sie haben uns gesagt, was mit der Antwort richtig war, aber Sie haben uns nicht gesagt, was damit nicht stimmt. Warum war es nicht erfolgreich? – Quentin

+1

Meinst du, die Anfrage ist fehlgeschlagen, weil das Payload-Format korrekt war, aber die Daten ungültig waren? Gehe nach "422". –

+0

@Quentin du hast einen guten Punkt dort. Was kann bei einer POST-Anfrage schiefgehen? Was sind die Fehler-Szenarien? Und was ist es wert, als Statuscode erfasst zu werden und was unter "Verschiedenes" oder 500 fallen sollte. – mko

Antwort

2

Wenn Sie die Syntax der Anfrage Nutzlast bedeutet gültig ist, aber es kann nicht aufgrund ungültiger Daten verarbeitet werden, können Sie 422 verwenden:

11.2. 422 Unprocessable Entity

Die 422 (Unprocessable Entity) Statuscode Mittel der Server versteht den Inhaltstyp der Anforderungseinheit (daher ist ein 415 (Nicht unterstützter Medientyp) Statuscode ungeeignet) und die Syntax der Anforderungseinheit ist korrekt (also eine 400 (Ungültige Anforderung) Statuscode ist ungeeignet), konnte jedoch die enthaltenen Anweisungen nicht verarbeiten. Zum Beispiel kann diese Fehlerbedingung auftreten, wenn ein XML-Antragskörper wohlgeformte (d. H. Syntaktisch korrekte), aber semantisch fehlerhafte XML-Anweisungen enthält.

Denken Sie daran, eine gute Beschreibung in der Antwort-Nutzlast anzugeben, die erklärt, was mit der Nutzlast nicht stimmt. Einzelheiten zum Melden von Problemen in HTTP-APIs finden Sie unter RFC 7807.

Verwandte Themen