para pagina example estado ejemplo codigos codes code rest http http-status-codes

rest - pagina - http status codes



Código de estado de respuesta para búsquedas en API REST (3)

Supongamos que tenemos la siguiente API:

GET /api/guests/{id}

GET /api/guests?name=dummy

¿Qué código de estado debo devolver cuando no haya criterios de coincidencia de invitados? Quiero decir que no hay invitados con nombre falso .

¿Debería ser 404 , 204 o 200 con una matriz vacía?


Volvería 200 con una matriz vacía ...
O a 204 (sin contenido)

A 404 es cuando no se encuentra un recurso . Su recurso en este caso es la colección de invitados ... que existe.


200 y lista vacía de artículos. Como se encuentra el recurso de invitado en general, pero no tiene elementos coincidentes para su consulta


El código de estado adecuado para cada situación

Considere las siguientes situaciones:

  • GET /api/guests?name=dummy

Es una operación que solicita una representación de una colección. Si ningún elemento coincide con los criterios de búsqueda, devuelva un código de estado 200 con una matriz vacía en el cuerpo de la respuesta, indicando que la solicitud fue recibida, entendida y aceptada con éxito por el servidor, y la colección en sí existe, pero la búsqueda no arrojó resultados.

  • GET /api/guests/{id}

Es una operación que solicita la representación de un solo recurso utilizando su identificador único. Si no se encontró ningún recurso, devuelve un error 404 , que indica que el servidor no encontró el recurso con ese identificador.

Más detalles

Eche un vistazo a las definiciones del código de estado en el RFC 7231 (que actualiza el antiguo RFC 2616 ). Está bastante claro:

6.3.1. 200 OK

El código de estado 200 (OK) indica que la solicitud ha tenido éxito . La carga útil enviada en una respuesta de 200 depende del método de solicitud. Para los métodos definidos por esta especificación, el significado pretendido de la carga útil se puede resumir como sigue:

  • GET : una representación del recurso objetivo;

  • HEAD : la misma representación que GET, pero sin los datos de representación;

  • POST : una representación del estado de, o los resultados obtenidos de, la acción;

  • PUT , DELETE : una representación del estado de la acción;

  • OPTIONS : una representación de las opciones de comunicación;

  • TRACE : una representación del mensaje de solicitud recibido por el servidor final.

[...]

6.3.5. 204 Sin contenido

El código de estado 204 (Sin contenido) indica que el servidor ha cumplido satisfactoriamente la solicitud y que no hay contenido adicional para enviar en el cuerpo de la carga de respuesta . Los metadatos en los campos de encabezado de respuesta se refieren al recurso de destino y su representación seleccionada después de aplicar la acción solicitada.

[...]

6.5.4. 404 No encontrado

El código de estado 404 (No encontrado) indica que el servidor de origen no encontró una representación actual para el recurso de destino o no está dispuesto a revelar que existe . Un código de estado 404 no indica si esta falta de representación es temporal o permanente; el código de estado 410 (Gone) es preferido sobre 404 si el servidor de origen sabe, presumiblemente a través de algún medio configurable, que la condición es probable que sea permanente.

[...]

Los códigos de estado HTTP están organizados en clases. Echa un vistazo a esto:

6.3. Exitoso 2xx

El código de clase de estado 2xx ( 2xx ) indica que la solicitud del cliente se recibió, comprendió y aceptó correctamente .

6.5. Error de cliente 4xx

La clase de código de estado 4xx (Error de cliente) indica que el cliente parece haber cometido un error . Excepto cuando se responde a una solicitud HEAD , el servidor DEBE enviar una representación que contenga una explicación de la situación de error, y si se trata de una condición temporal o permanente.

[...]