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.
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
RFC 2616 describe qué códigos de estado utilizar .
Y no, no siempre son 200.
Respuesta corta: para PUT y DELETE, debe enviar 200 (OK) o 204 (Sin contenido).
Respuesta larga: aquí hay un diagrama de decisión completo (haga clic para ampliar).