2008-08-23 23 views
13

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

Qué pasa si mi proveedor de alojamiento no permite puso y BORRAR?

¿Es esto realmente importante, puedo vivir felices para siempre con sólo GET y POSTAL?


Actualización: Gracias por las respuestas gente, Roger's answer era probablemente el mejor debido a la relación de la entrevista Bill Venners y Elliotte oxidado Harold. Ahora lo entiendo


Respuesta

20

Sí, puede vivir sin PUT y ELIMINAR.

este artículo se explica por qué: http://www.artima.com/lejava/articles/why_put_and_delete.html

Mientras que RESTafrians verdaderos esto puede ser herejía, en el mundo real se hace lo que puede, con lo que tienes. Ser tan racional como sea posible y tan coherente con su propia convención como sea posible, pero definitivamente se puede construir un buen sistema REST sin P y D.

rp

2

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

1

navegadores web de hoy en día sólo se obtiene + mango puestos. En Rails, por ejemplo, PUTS + DELETES se "falsifican" a través de campos de formulario ocultos.

A menos que su marco tenga alguna solución para "respaldar" PUTS + DELETES, no se preocupe por ellos por el momento.

3

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 ...

2

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

editar: Aquí hay una cita de Fielding, que es la que crea y REST definido:

Un REST API no debe contener ningún cambio en los protocolos de comunicación aparte de llenar de salida o la fijación de 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 provisionales para implementaciones rotas (como aquellos 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 apéndices, con la expectativa de que la solución sea eventualmente obsoleta. [La falla aquí implica que las interfaces de recursos son específicas de un objeto, no genéricas.]

+0

Desde este punto de vista, todos los navegadores web están rotos. ¿Pero quién dijo que por "clientes REST" nos referimos al navegador web? –

+0

Te estás perdiendo mi punto. Ni siquiera mencioné los navegadores. Pero de todos modos, aún debe permitir el uso adecuado con PUT y DELETE, y así sucesivamente (si su servicio de hosting lo permite), así como algún tipo de solución alternativa para clientes "rotos". – aehlke

Cuestiones relacionadas