Saltar al contenido

¿Qué llamadas REST PUT/POST/DELETE deberían devolver una convención?

El paso a paso o código que encontrarás en este artículo es la resolución más fácil y válida que hallamos a tu duda o problema.

Solución:

Perdone la ligereza, pero si está haciendo REST sobre HTTP, RFC7231 describe exactamente qué comportamiento se espera de GET, PUT, POST y DELETE.

Actualización (3 de julio de 2014):

La especificación HTTP intencionalmente no define lo que se devuelve de POST o DELETE. La especificación solo define lo que necesita ser definido. El resto se deja a elección del implementador.

En general, las convenciones son “piensa como si solo estuvieras entregando páginas web”.

Para un PUT, devolvería la misma vista que obtendría si hiciera un GET inmediatamente después; eso daría como resultado un 200 (bueno, suponiendo que la representación tenga éxito, por supuesto). Para un POST, haría una redirección al recurso creado (suponiendo que esté realizando una operación de creación; si no, simplemente devuelva los resultados); el código para una creación exitosa es 201, que en realidad es el único código HTTP para una redirección que no está en el rango 300.

Nunca me ha gustado lo que debería devolver un DELETE (mi código actualmente produce un HTTP 204 y un cuerpo vacío en este caso).

La creación de un recurso generalmente se asigna a POST, y eso debería devolver la ubicación del nuevo recurso; por ejemplo, en un andamio de Rails, CREATE redirigirá a SHOW para el recurso recién creado. El mismo enfoque podría tener sentido para la actualización (PUT), pero eso es menos convencional; una actualización solo necesita indicar el éxito. Una eliminación probablemente solo necesite indicar el éxito también; si desea redirigir, devolver la LISTA de recursos probablemente tenga más sentido.

El éxito se puede indicar mediante HTTP_OK, sí.

La única regla estricta en lo que he dicho anteriormente es que CREATE debe devolver la ubicación del nuevo recurso. Eso me parece una obviedad; tiene mucho sentido que el cliente necesite poder acceder al nuevo elemento.

Reseñas y valoraciones de la guía

Ten en cuenta comunicar esta crónica si te valió la pena.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *