REST es solo una estructura de diseño para acceso y manipulación de datos. No hay reglas claras sobre cómo un servidor debe reaccionar ante las solicitudes de datos.
Dicho esto, típicamente una solicitud resto de PUT
o DELETE
sería como sigue:
DELETE /item/10293
o
PUT /item/23848
foo=bar
fizz=buzz
herp=derp
Las peticiones dadas están asociados con una ID específica. Debido a esto, decirle al servidor que elimine la misma ID 15 veces terminará con el mismo resultado que llamarlo una vez, a menos que haya algún tipo de re numeración.
Con la solicitud PUT
, indicar al servidor que actualice un elemento específico a valores específicos también dará el mismo resultado.
Un caso en el que un comando sería no idempotente que normalmente implican algún tipo de valor relativo:
DELETE /item/last
Llamando que 15 veces es probable eliminar 15 artículos, en lugar de la misma último elemento. Un mediante HTTP alternativa adecuada podría ser:
POST /item/last?action=delete
Una vez más, resto no es una especificación oficial, es sólo una estructura con algunas cualidades comunes. Hay muchas formas de implementar una estructura RESTful.
En cuanto a las formas de apoyo HTML5 PUT
& DELETE
, es realmente depende de los navegadores para iniciar el apoyo a diferentes métodos en lugar de la propia especificación. Si todos los navegadores comenzaron a implementar diferentes métodos para el envío de formularios, estoy seguro de que se agregarían a las especificaciones.
Con la web funcionando como está, una buena implementación RESTful también puede incorporar alguna forma de AJAX , de todos modos, por lo que me parece en gran medida innecesario.
Nada es automático. Solo son idempotentes si el servidor que recibe las solicitudes es realmente RESTful y las implementa de manera idempotente. No estoy escribiendo esto como respuesta porque está fuera del tema de StackOverflow. Pregunte en http://programmers.stackexchange.com si debe preguntar. –
es posible que también desee verificar las siguientes respuestas: http://stackoverflow.com/questions/4088350/is-rest-delete-really-idempotent http://stackoverflow.com/questions/630453/put-vs -post-in-rest –