Wir haben eine REST-API, an die Kunden routinemäßig POST- und PUT-Daten senden. Wenn sie dies tun, POSTen sie manchmal Daten, die zu keiner Änderung in unserem System führen. Die POSTs und PUTs sind wohlgeformt, aber die Daten, die sie senden, sind identisch mit den Daten in unserer Datenbank. Wenn das passiert, habe ich gerade herausgefunden, dass wir einen 400 HTTP-Status zurückgeben. Leider bedeutet dies "fehlerhafte Anfrage" im Sinne von "Anfrage konnte vom Server aufgrund einer fehlerhaften Syntax nicht verstanden werden".
Das ist natürlich nicht der Fall, aber mir wurde gesagt, dass wir diesen Code verwenden werden, da es keinen anderen geeigneten Statuscode gibt. Wir haben verschiedene Möglichkeiten in Betracht gezogen:
- 304 Nicht geändert. Dies gilt leider nur für GET-Anfragen.
- 204 Nein Inhalt. Scheint nahe dran zu sein, verbietet aber einen Entitäts-Körper.
Andere Möglichkeiten scheinen ebenso schlecht zu sein. Wir könnten uns entscheiden für 200 OK
und die entsprechenden Informationen im XML-Dokument, das wir zurückgeben, zu haben, aber das scheint nicht sehr "REST-gerecht" zu sein. Wie wird dies in der REST-Welt im Allgemeinen gehandhabt?
(Der Antwortcode Not Modified wurde behoben. Danke Mkoeller)