Se a solicitação não puder ser analisada corretamente (incluindo a entidade / organismo da solicitação), a resposta apropriada será 400 Solicitação incorreta [ 1 ].
A RFC 4918 declara que 422 Entidade Não Processável é aplicável quando a entidade solicitada é sintaticamente bem formada, mas semanticamente errônea. Portanto, se a entidade solicitada estiver ilegível (como um formato de email incorreto), use 400; mas se simplesmente não fizer sentido (como @example.com
) use 422.
Se o problema é que, conforme indicado na pergunta, o nome de usuário / email já existe, você pode usar o 409 Conflict [ 2 ] com uma descrição do conflito e uma dica sobre como corrigi-lo (neste caso, "escolha um nome de usuário / email diferente "). No entanto, na especificação escrita, 403 Proibido [ 3 ] também pode ser usado neste caso, apesar dos argumentos sobre a Autorização HTTP.
412 Falha na pré-condição [ 4 ] é usado quando um cabeçalho de solicitação de pré-condição (por exemplo If-Match
) fornecido pelo cliente é avaliado como falso. Ou seja, o cliente solicitou algo e forneceu pré-condições, sabendo muito bem que essas pré-condições podem falhar. 412 nunca deve ser lançado no cliente do nada e não deve estar relacionado à entidade solicitante propriamente dita .