possible example error codigos codes code http http-status-codes

example - Código de estado HTTP para actualizar y eliminar?



http-status-codes npm (8)

¿Qué código de estado debo configurar para UPDATE ( PUT ) y DELETE (por ejemplo, producto actualizado con éxito)?


Además de 200 y 204, 205 (Restablecer contenido) podría ser una respuesta válida.

El servidor ha cumplido con la solicitud y el agente de usuario DEBE restablecer la vista del documento que provocó el envío de la solicitud ... [por ejemplo] la eliminación del formulario en el que se proporciona la entrada.


Aquí hay algunos consejos:

BORRAR

  • 200 (si desea enviar algunos datos adicionales en la Respuesta) o 204 (recomendado).

  • 202 La operación eliminada no se ha comprometido todavía.

  • Si no hay nada que eliminar, use 204 o 404 (la operación DELETE is idempotent, eliminar un elemento ya eliminado es una operación exitosa , por lo que puede devolver 204 , pero es cierto que idempotent no implica necesariamente la misma respuesta)

Otros errores:

  • 400 Solicitud incorrecta (la sintaxis con formato incorrecto o una consulta incorrecta es extraña pero posible).
  • 401 Error de autenticación no autorizada
  • 403 Prohibido : error de autorización o ID de aplicación no válida.
  • 405 No permitido . Por supuesto.
  • 409 Conflicto de recursos puede ser posible en sistemas complejos.
  • Y 501 , 502 en caso de errores.

PONER

Si estás actualizando un elemento de una colección.

  • 200/204 con las mismas razones que BORRAR arriba.
  • 202 si la operación no ha sido aún comprometida.

El elemento referenciado no existe:

  • PUT puede ser 201 (si creó el elemento porque ese es su comportamiento)
  • 404 Si no desea crear elementos a través de PUT.

  • 400 Solicitud incorrecta (sintaxis con formato incorrecto o una consulta incorrecta más común que en el caso de DELETE).

  • 401 no autorizado
  • 403 Prohibido : error de autenticación o ID de aplicación no válida.
  • 405 No permitido . Por supuesto.
  • 409 Resource Conflict puede ser posible en sistemas complejos, como en DELETE.
  • 422 entidad no procesable Ayuda a distinguir entre una "Solicitud incorrecta" (por ejemplo, XML / JSON con formato incorrecto) y valores de campo no válidos
  • Y 501 , 502 en caso de errores.

Cuando se modifica un recurso, el código de respuesta debe ser 200 ("OK") . Si el estado del recurso cambia de una manera que cambia el URI al recurso (por ejemplo, se cambia el nombre de una cuenta de usuario), el código de respuesta es 301 ("Movido permanentemente") y el encabezado de la ubicación debe proporcionar el nuevo URI.

Cuando se elimina un objeto, el código de respuesta debe ser 200 ("OK").

Siga el enlace a continuación para obtener más detalles: código de estado para el descanso


Dado que la pregunta se profundiza en si DELETE "debería" devolver 200 vs 204 , vale la pena considerar que algunas personas recomiendan devolver una entidad con enlaces, por lo que la preferencia es de 200 .

"En lugar de devolver 204 (Sin contenido), la API debería ser útil y sugerir lugares a donde ir. En este ejemplo, creo que un vínculo obvio que se debe proporcionar es" ''somewhere.com/container/'' (menos ''recurso'') "- el contenedor desde el cual el cliente acaba de eliminar un recurso. Tal vez el cliente desee eliminar más recursos, por lo que sería un enlace útil ".

http://blog.ploeh.dk/2013/04/30/rest-lesson-learned-avoid-204-responses/

Si un cliente encuentra una respuesta 204, puede darse por vencido, ir al punto de entrada de la API o volver al recurso anterior que visitó. Ninguna de las opciones es particularmente buena.

Personalmente, no diría que 204 está mal (ni tampoco el autor; dice "molesto") porque el buen almacenamiento en caché en el lado del cliente tiene muchos beneficios. Lo mejor es ser consistente de cualquier manera.


En junio de 2014 RFC7231 obsoleta RFC2616. Si está haciendo REST a través de HTTP, RFC7231 describe exactamente qué comportamiento se espera de GET, PUT, POST y DELETE


Para una solicitud PUT : HTTP 200 o HTTP 204 debe implicar "recurso actualizado correctamente".

Para una solicitud DELETE : HTTP 200 o HTTP 204 debe implicar "recurso eliminado con éxito". También se puede devolver HTTP 202, lo que implicaría que la instrucción fue aceptada por el servidor y que "el recurso se marcó para su eliminación".

9.6 PONER

Si se modifica un recurso existente, se enviarán los códigos de respuesta 200 (OK) o 204 (Sin contenido)> DEBERÍAN para indicar la finalización exitosa de la solicitud.

9.7 BORRAR

Una respuesta exitosa DEBE ser 200 (OK) si la respuesta incluye una entidad que describe el estado, 202 (Aceptada) si la acción aún no se ha promulgado, o 204 (Sin contenido) si la acción se ha promulgado pero la respuesta no incluye una entidad.

Fuente: w3.org: Definiciones de métodos HTTP / 1.1

HTTP 200 OK: respuesta estándar para solicitudes HTTP exitosas. La respuesta real dependerá del método de solicitud utilizado.

HTTP 204 Sin contenido: el servidor procesó correctamente la solicitud, pero no devuelve ningún contenido

Fuente: Lista de códigos de estado HTTP: 2xx Success