El problema aquí es que muchas de las discusiones web sobre este tema tienen un año o más. Estoy trabajando en esta misma investigación en este momento, y esto es lo que aprendí hoy.
Este IBM Developer Works article from August 2008 de Jorge Rasillo y Mike Burr muestra cómo hacer una aplicación de fondo Flex front-end/RESTful (ejemplos en PHP y Groovy). Buen articulo. De todos modos, aquí está el llevar:
- Su PHP/código Groovy usos y espera PUT y DELETE.
- Pero el código Flex tiene que usar POST, pero establece el encabezado HTTP X-Method-Override para DELETE (puede hacer lo mismo para PUT I presume).
- Tenga en cuenta que esto es no el método Proxy descrito anteriormente.
// Flex doesn't know how to generate an HTTP DELETE.
// Fortunately, sMash/Zero will interpret an HTTP POST with
// an X-Method-Override: DELETE header as a DELETE.
deleteTodoHS.headers['X-Method-Override'] = 'DELETE';
¿Qué está pasando aquí? el servidor web de IBM intercepta e interpreta el "POST con BORRADO" como un BORRAR.
Por lo tanto, profundicé más y encontré este post and discussion with Don Box (uno de los tipos originales de SOAP). Aparentemente, este es un comportamiento bastante estándar, ya que algunos navegadores, etc. no admiten PUT y DELETE, y es una solución temporal que ha durado un tiempo. Aquí hay un fragmento, pero hay mucha más discusión.
"Si estuviera construyendo un cliente GData, sinceramente, se preguntan por qué me molesto en el uso de BORRAR y poner métodos en absoluto dado que X-HTTP-Method-Override se va a trabajar en más casos/despliegues."
Mi conclusión es que si su lado web admite este encabezado X-Method-Override, entonces puede utilizar este enfoque. Los comentarios de Don Box me hacen pensar que es bastante compatible, pero tengo no se ha confirmado que aún
Otro problema surge en torno a ser capaz de leer los encabezados de respuesta HTTP Una vez más, desde a blog post in 2007 by Nathan de Vries, vemos esto discutió siguió esa entrada en el blog y la discusión con su propio comentario:...
"El único cambio en el frente web es que las versiones más recientes de Flash Player (sin duda, esos s upplied con Flex 3 beta) ahora es compatible con la propiedad responseHeaders en instancias de HTTPStatusEvent. "
Espero que eso signifique que no es un problema ahora.
Creo que también es importante preguntarse si los clientes que usan "X-HTTP-Method-Override" pierden algunos de los beneficios de REST. ¿Es este enfoque realmente diferente de tunelización sobre HTTP? ¿No pierde la capacidad de aprovechar proxies de almacenamiento en caché y otras ventajas similares? – Gili
Si mira aquí http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html en la sección 13.10 verá que PUT, DELETE y POST causan que una entrada de caché sea invalidada. Por lo tanto, independientemente de si usa el verbo correcto o POST más X-HTTP-Method-Override, tendrá el mismo efecto en la caché. –
@Gili Para responder a su primera pregunta, no, usted no pierde ninguno de los beneficios de REST. –