Devo retornar um 410 Gone em resposta a uma solicitação HTTP DELETE bem-sucedida?
-
21-12-2019 - |
Pergunta
Estou implementando o suporte DELETE em uma API ReST (construída no ServiceStack) e me perguntando qual código de resposta retornar após um DELETE bem-sucedido.
HTTP define 410 como:
O recurso solicitado não está mais disponível no servidor e nenhum endereço de encaminhamento é conhecido.Espera-se que esta condição seja considerada permanente.Clientes com recursos de edição de links DEVEM excluir referências ao Request-URI após a aprovação do usuário.Se o servidor não souber ou não tiver recursos para determinar se a condição é permanente ou não, o código de status 404 (Não encontrado) DEVE ser usado.Esta resposta pode ser armazenada em cache, a menos que indicado de outra forma.
Agora, se um recurso acaba de ser DELETE
d, provavelmente quero que muitas dessas recomendações sejam aplicadas ...mas a prática aceita parece estar retornando um 200 OK
seguindo um sucesso DELETE
- especialmente porque o 4XX
intervalo deve denotar condições de erro.
Algum argumento convincente de uma forma ou de outra além das diretrizes da especificação HTTP?
Solução
RFC 2616 Seção 9.7 declara especificamente o seguinte em relação à resposta para DELETE
:
Uma resposta bem -sucedida deve ser 200 (OK) se a resposta incluir uma entidade que descreve o status, 202 (aceita) se a ação ainda não foi promulgada ou 204 (sem conteúdo) se a ação foi promulgada, mas a resposta não incluir uma entidade.