Mais
Códigos de status REST HTTP para validação falhada ou duplicata inválida
I'm construindo uma aplicação com uma API baseada em REST e chegaram ao ponto onde i'm especificando códigos de status para cada requisição.
Que código de status devo enviar para pedidos que falham na validação ou onde um pedido está tentando adicionar uma duplicata em minha base de dados?
I'olhei através de http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html mas nenhum deles parece estar certo.
Existe uma prática comum ao enviar códigos de status?
778
3
Para falha na validação de entrada: 400 Bad Request + a sua descrição opcional. Isto é sugerido no livro "RESTful Web Services". Para dupla submissão: 409 Conflito
**Atualização Junho 2014***
A especificação relevante costumava ser RFC2616, o que deu o uso de 400 (Bad Request) de forma bastante restrita como
Por isso poderia ter sido argumentado que era inadequado para erros semânticos. Mas não mais; desde junho de 2014 o padrão relevante RFC 7231, que substitui o anterior RFC2616, dá o uso de 400 (Bad Request) de forma mais ampla como
Você deve definitivamente dar uma explicação mais detalhada nos cabeçalhos de resposta e/ou corpo (por exemplo, com um cabeçalho personalizado -
X-Status-Reason: Validation failed
).Eu recomendo código de status 422, "Entidade não processável".