Si la solicitud no se pudo analizar correctamente (incluida la entidad / cuerpo de la solicitud), la respuesta apropiada es 400 Solicitud incorrecta [ 1 ].
RFC 4918 establece que 422 Entidad no procesable es aplicable cuando la entidad de solicitud está sintácticamente bien formada, pero semánticamente errónea. Entonces, si la entidad de solicitud es ilegible (como un formato de correo electrónico incorrecto) use 400; pero si simplemente no tiene sentido (como @example.com
) use 422.
Si el problema es que, como se indica en la pregunta, el nombre de usuario / correo electrónico ya existe, puede usar 409 Conflict [ 2 ] con una descripción del conflicto y una pista sobre cómo solucionarlo (en este caso, "elija un nombre de usuario / correo electrónico diferente "). Sin embargo, en la especificación escrita, 403 Prohibido [ 3 ] también se puede utilizar en este caso, a pesar de los argumentos sobre la Autorización HTTP.
412 Precondition Failed [ 4 ] se usa cuando un encabezado de solicitud de precondición (por ejemplo If-Match
) que fue suministrado por el cliente se evalúa como falso. Es decir, el cliente solicitó algo y proporcionó condiciones previas, sabiendo muy bien que esas condiciones previas podrían fallar. 412 nunca debería aparecer en el cliente de la nada, y no debería estar relacionado con la entidad de solicitud per se .