Meer
REST HTTP-statuscodes voor mislukte validatie of ongeldig duplicaat
Ik'm bouw een toepassing met een REST-gebaseerde API en ben op het punt gekomen waar ik'm statuscodes specificeer voor elk verzoek.
Welke statuscode moet ik sturen voor verzoeken mislukte validatie of waar een verzoek probeert toe te voegen een duplicaat in mijn database?
Ik'heb gekeken via http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html maar geen van hen lijkt juist.
Is er een gemeenschappelijke praktijk bij het verzenden van statuscodes?
778
3
Voor invoer validatie fout: 400 Bad Request + uw optionele beschrijving. Dit wordt voorgesteld in het boek "RESTful Web Services". Voor dubbel indienen: 409 Conflict
Update juni 2014
De relevante specificatie was voorheen RFC2616, die het gebruik van 400 (Bad Request) vrij beperkt gaf als
Men zou dus kunnen redeneren dat het ongeschikt was voor semantische fouten. Maar nu niet meer; sinds juni 2014 geeft de relevante standaard RFC 7231, die de vorige RFC2616 vervangt, het gebruik van 400 (Bad Request) ruimer als
Je moet zeker een meer gedetailleerde uitleg geven in de response headers en/of body (bijv. met een custom header -
X-Status-Reason: Validation failed
).Ik adviseer statuscode 422, "Unprocessable Entity".