api - httpstatus - Código de estado HTTP correcto a entrada incorrecta
facebook api error 400 wish (5)
¿Cuál es el código de respuesta HTTP óptimo cuando no informa 200 (todo está bien) pero el error en la entrada?
Al igual que, envía algunos datos al servidor y responderá que sus datos están equivocados
usar 500
parece más a Server Issue
el uso de 200
con el texto de advertencia / error es malo (lo que permite el almacenamiento en caché y todo no está bien)
usar 204
y no devolver nada, tal vez sea bueno (¿pero está bien respaldado?)
usar 404
es incorrecto si la ruta solicitada (script) está disponible y en el lugar correcto
404 - No encontrado - se puede utilizar para El URI solicitado no es válido o el recurso solicitado como un usuario, no existe.
Además de las http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html , también puedes ver esto en acción. Mira las respuestas de Twitter y Facebook.
https://dev.twitter.com/docs/error-codes-responses
http://www.fb-developers.info/tech/fb_dev/faq/general/gen_10.html
Los códigos que comienzan con 4 (4xx) son para errores del cliente. ¿Tal vez 400 (Solicitud incorrecta) podría ser adecuado para este caso? La definición en http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html dice:
"El servidor no puede entender la solicitud debido a una sintaxis mal formada. El cliente NO DEBE repetir la solicitud sin modificaciones".
Tuvimos el mismo problema al hacer nuestra API también. Estábamos buscando un código de estado HTTP equivalente a InvalidArgumentException
. Después de leer el artículo fuente a continuación, terminamos usando 422 Unprocessable Entity
que dice:
El código de estado 422 (Entidad no procesable) significa que el servidor entiende el tipo de contenido de la entidad de solicitud (por lo tanto, un código de estado 415 (Tipo de medio no admitido) es inapropiado) y la sintaxis de la entidad de solicitud es correcta (por lo tanto, 400 (Solicitud incorrecta) el código de estado es inapropiado) pero no pudo procesar las instrucciones contenidas. Por ejemplo, esta condición de error puede ocurrir si un cuerpo de solicitud XML contiene instrucciones XML bien formadas (es decir, sintácticamente correctas) pero semánticamente erróneas.
fuente: https://www.bennadel.com/blog/2434-http-status-codes-for-invalid-data-400-vs-422.htm
417 significa HTTP_EXPECTATION_FAILED