Le problème est qu'un grand nombre de discussions sur le web autour de cette question datent d'un an ou plus. Je travaille actuellement sur cette même recherche, et voici ce que j'ai appris aujourd'hui.
Ce site Article d'IBM Developer Works d'août 2008 de Jorge Rasillo et Mike Burr montre comment réaliser une application Flex front-end / RESTful back-end (exemples en PHP et Groovy). Bel article. Bref, voici ce qu'il faut retenir :
- Leur code PHP/Groovy utilise et attend PUT et DELETE.
- Mais le code Flex doit utiliser POST, mais définir l'en-tête HTTP X-Method-Override sur DELETE (vous pouvez faire de même pour PUT, je présume).
-
Notez que c'est pas la méthode Proxy discutée ci-dessus.
// 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';
Que se passe-t-il ici ? Le serveur web IBM intercepte et interprète le "POST with DELETE" comme un DELETE.
Alors, j'ai creusé davantage et j'ai trouvé ceci post et discussion avec Don Box (l'un des premiers responsables de SOAP). Apparemment, il s'agit d'un comportement assez standard puisque certains navigateurs, etc. ne supportent pas PUT et DELETE, et c'est une solution de contournement qui existe depuis un certain temps. Voici un extrait, mais il y a beaucoup plus de discussion.
"Si je construisais un client GData, je me demande honnêtement pourquoi je m'embêterais à utiliser les méthodes DELETE et PUT, étant donné que X-HTTP-Method-Override va fonctionner dans plus de cas/déploiements."
Si votre site Web prend en charge l'en-tête X-Method-Override, vous pouvez utiliser cette approche. Les commentaires de Don Box me font penser qu'il est assez bien supporté, mais je ne l'ai pas encore confirmé.
Un autre problème se pose quant à la possibilité de lire les en-têtes de la réponse HTTP. Encore une fois, de un billet de blog en 2007 par Nathan de Vries nous voyons cette discussion. Il a fait suivre cet article de blog et cette discussion de son propre commentaire :
"Le seul changement sur le front du web est que les nouvelles versions de Flash Player (certainement celles fournies avec la version bêta de Flex 3) prennent désormais en charge la propriété responseHeaders sur les instances de HTTPStatusEvent."
J'espère que cela signifie que ce n'est plus un problème maintenant.