tabla respuesta estado error codigos codes api http rest http-status-code-400 http-status-code-412

api - respuesta - rest error 400



Código de estado de HTTP 400 vs 412 (3)

412 se utiliza cuando su servidor no cumple una condición especificada por el cliente.

En tu caso deberías usar un 400. Es solo una mala petición.

Vea este odino.org/… para una explicación sobre los encabezados de condición previa.

El encabezado Etag es, generalmente, una cadena que representa nuestro recurso en los encabezados HTTP. Pides un recurso con un If-Match es un encabezado HTTP precondicional. Enviará un 412 si no coincide con el código que envió.

If-None-Match le dice al servidor que procese una respuesta completa solo si el Etag es diferente del enviado por el cliente.

Así que estoy desarrollando una API Rest

Cuando se realiza un POST para crear un recurso y falta un campo obligatorio, ¿qué debo devolver?

400 Petición Incorrecta

O

412 - Condición fallida

¿Y por qué?


Podría usar el código de estado 422. Si no lo desea, 400 está bien.


Utilice 400 si los parámetros de solicitud son incorrectos. Use 412 si uno de los encabezados de solicitud If-* como If-Match , If-Modified-Since , etc. está equivocado.

¿Por qué? Eso es lo que dice RFC. Vea por ejemplo este extracto de la especificación If-Match :

Si ninguna de las etiquetas de entidad coincide, o si se da "*" y no existe ninguna entidad actual, el servidor NO DEBE realizar el método solicitado y DEBE devolver una respuesta 412 (error de condición previa). Este comportamiento es más útil cuando el cliente quiere evitar que un método de actualización, como PUT, modifique un recurso que ha cambiado desde que el cliente lo recuperó por última vez.