RESTful HTTP códigos de resposta
Pergunta
Estou desenvolvendo uma API RESTful simples, e totalmente no amor com a forma como minimalista que é. Mas eu sou incerto quanto aos códigos de resposta HTTP corretas para várias situações:
-
incorretamente formada consulta ??p>
-
consulta corretamente formada refere-se a um recurso que não existe
-
Resource sucesso Suprimido
-
Resource sucesso editado
Atualmente estou pensando que 1 seria 403 Forbidden
; 2 seria 410 Gone
; 3 e 4 seriam 202 Accepted
. Será que eles parece certo?
Solução
Para # 1, 403 sugere a sua aplicação entendeu o pedido, mas não vai cumpri-lo (ou seja, usuário atual não tem permissão para fazer isso por algum motivo). Eu acho que 400 ruim pedido poderia fazer mais sentido neste caso.
Para # 2 - Eu acho que 404 faria mais sentido ou seja, recurso não for encontrado, a menos que o recurso existia em algum momento, e, em seguida, foi suprimido, caso em que 410 seria justo -., mas não muitos clientes sabem o que fazer com 410
Para # 3 e # 4 -. 200 se processou a eliminação com sucesso, 202 se a exclusão é na fila e será tratado em uma data posterior "fora da banda"
RFC 2616 fornece grandes explicações sobre o que significa cada código de resposta em termos bastante compreensível.
Outras dicas
- 400
- 404
- 200
- 200
- 201 - recurso criado com sucesso
1). 400 - padrão ruim pedido, 403 significa que o pedido está formatado corretamente, mas você não tem permissão para acessá-lo
2). 404 - a 410 implica que o recurso existia, mas foi deliberadamente movida
3). e 4). 200 se a ação aconteceu com sucesso pelo tempo que você enviar a resposta, 202 se a ação está pendente. Na prática 202 é provável para ações de exclusão (onde eles podem estar sujeitos a revisão), mas você pode ou não pode querer voltar imediatamente a 200 de qualquer maneira para que ela apareça realmente excluídos para o usuário. Isso é um imho questão de design.
obter a Richardson & rubi livro - tem um apêndice útil sobre a sua pergunta e é leitura obrigatória de qualquer maneira
por que não usar o http códigos de resposta . Você deseja obter todas as otimizações (para ex, 303, 304) / put infra-estrutura no local para http gratuitamente.