REST HTTP-statuskoder for mislykket validering eller ugyldig duplikat
Jeg bygger en applikasjon med et REST-basert API og har kommet til et punkt der jeg spesifiserer statuskoder for hver forespørsel.
Hvilken statuskode skal jeg sende for forespørsler som ikke blir validert, eller der en forespørsel prøver å legge til et duplikat i databasen min?
Jeg har sett gjennom http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html, men ingen av dem virker riktige.
Finnes det en felles praksis for sending av statuskoder?
778
3
For feil ved inndatavalidering: 400 Bad Request + valgfri beskrivelse. Dette er foreslått i boken "RESTful Web Services". For dobbel innsending: 409 Conflict
Oppdatert juni 2014.
Den relevante spesifikasjonen pleide å være RFC2616, som ga bruk av 400 (Bad Request) ganske snevert som
Så det kan ha blitt hevdet at det var upassende for semantiske feil. Men ikke nå lenger; siden juni 2014 har den relevante standarden RFC 7231, som erstatter den tidligere RFC2616, gitt bruken av 400 (Bad Request) mer bredt som
Du bør absolutt gi en mer detaljert forklaring i svaroverskriftene og/eller brødteksten (f.eks. med en egendefinert overskrift -
X-Status-Reason: Validation failed
).Jeg anbefaler statuskode 422, "Unprocessable Entity".