Pregunta

¿Cuál es el conjunto mínimo de verbos HTTP que un servidor debe permitir que un servicio web se clasifique como RESTful?

¿Qué pasa si mi proveedor de servicios no permite PUT y DELETE ?

¿Esto es realmente importante? ¿Puedo vivir feliz para siempre con solo GET y POST ? / p>


Actualización: Gracias por las respuestas amigos, La respuesta de Roger fue probablemente mejor debido al enlace a la entrevista de Bill Venners y Elliotte Rusty Harold. Ahora lo entiendo.


¿Fue útil?

Solución

Sí, puedes vivir sin PUT y DELETE.

Este artículo te dice por qué: http://www.artima.com/lejava/articles/why_put_and_delete.html

Mientras que para los verdaderos RESTafrianos esto puede ser una herejía, en el mundo real haces lo que puedes, con lo que tienes. Sea tan racional como pueda y tan consistente con su propia convención como pueda, pero definitivamente puede crear un buen sistema REST sin P y D

rp

Otros consejos

También puede usar X-Http-Verb-Override: DELETE inst. de HTTP DELETE. Esto también es útil para los clientes de Silverlight que no pueden cambiar los verbos HTTP y solo admiten GET y POST ...

Si solo usa GET y POST, sigue siendo RESTful. Su servicio web solo puede hacer cosas que solo requieren GET o POST, por lo que está bien.

REST permite romper la convención del protocolo si se rompen las implementaciones del protocolo (de modo que las únicas cosas no estándar que usted hace son evitar las partes rotas de la implementación). Por lo tanto, dentro de REST está permitido usar algún otro método para representar verbos generalmente no compatibles como DELETE o PUT.

editar: Aquí hay una cita de Fielding, quién es el que creó y definió REST:

  

Una API REST no debe contener ningún cambio en los protocolos de comunicación, aparte de completar o corregir los detalles de bits no especificados de protocolos estándar, como el método PATCH de HTTP o el campo de encabezado de enlace. Las soluciones alternativas para implementaciones rotas (como los navegadores lo suficientemente estúpidos como para creer que HTML define el conjunto de métodos de HTTP) deben definirse por separado, o al menos en los apéndices, con la expectativa de que la solución eventualmente sea obsoleta. [La falla aquí implica que las interfaces de recursos son específicas del objeto, no genéricas.]

Los navegadores web de hoy solo manejan GETS + POSTS. En Rails, por ejemplo, PUTS + DELETES son '' falsificados '' a través de campos de formulario ocultos.

A menos que su marco tenga alguna solución alternativa para '' soporte '' PUTS + DELETES, no se preocupe por ellos por ahora.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow