32 votes

Est-il possible de créer un client REST avec Flex ?

Je commence un projet utilisant une architecture Restful implémentée en Java (utilisant la nouvelle norme JAX-RS).

Nous envisageons de développer l'interface graphique avec une application Flex. J'ai déjà trouvé quelques problèmes avec cette implémentation en utilisant le composant HTTPService (les codes d'erreur de réponse, l'accès aux en-têtes...).

L'un d'entre vous a-t-il de l'expérience dans un projet similaire ? Est-il réalisable ?

2voto

Phil Points 21

La prise en charge de REST par Flex est, au mieux, faible. J'ai passé beaucoup de temps à construire un prototype et je connais donc la plupart des problèmes. Comme nous l'avons déjà mentionné, seules les fonctions GET et POST sont prises en charge d'emblée. À première vue, il semble que vous puissiez utiliser la configuration du proxy dans LiveCycle Data Services ou Blaze pour obtenir la prise en charge de PUT et DELETE. Toutefois, il s'agit d'une imposture. La requête provenant de votre application Flex sera toujours un POST. Le proxy la convertit en PUT ou DELETE côté serveur pour tromper votre code côté serveur. Il existe également d'autres problèmes. Il est difficile de croire que c'est ce qu'Adobe a pu proposer de mieux. Après mon évaluation, nous avons décidé d'aller dans une autre direction.

1voto

Brandon Points 2580

Oui, j'ai pu utiliser les en-têtes POST et access avec ce composant :

http://code.google.com/p/as3httpclient/wiki/Links

Exemple

1voto

dj_segfault Points 6407

Je travaille actuellement sur une application qui repose en grande partie sur des appels REST entre Flex, JavaScript et les servlets Java. Nous contournons le problème du code d'erreur de réponse en établissant la convention d'un bloc <status id="XXX" name="YYYYY"> qui est renvoyé en cas d'erreur, avec des ID d'erreur qui correspondent approximativement aux codes d'erreur HTTP.

Nous contournons les limites du scripting intersite en utilisant un Java Servlet comme proxy HTTP. Les appels au proxy (qui fonctionne sur le même serveur que celui qui sert le reste du contenu, y compris le contenu Flex) envoient la demande à l'autre serveur, puis renvoient la réponse à l'appelant initial.

1voto

Lance Pollard Points 17503

RestfulX a résolu la plupart/toutes les problématiques REST avec Flex. Il prend en charge Rails/GAE/Merb/CouchDB/AIR/WebKit, et je suis sûr qu'il serait facile de le connecter à votre implémentation Java.

Dima y a également intégré la bibliothèque AS3HTTPClient.

Regardez !

0voto

Yaba Points 2702

En fait, nous utilisons déjà Flex avec un cadre Rest-Style. Comme mbrevort l'a déjà mentionné, les méthodes PUT et DELETE ne peuvent pas être utilisées directement. Au lieu de cela, nous effectuons le PUT via un POST et pour le DELETE, nous utilisons un GET sur une ressource avec un paramètre URL comme ?action=delete.

Ce n'est pas le style Rest à 100%, donc je ne suis pas sûr que cela fonctionne avec une implémentation JSR 311. Vous aurez besoin d'une certaine flexibilité du côté serveur pour contourner les restrictions PUT et DELETE.

En ce qui concerne la gestion des erreurs, nous avons mis en place un service d'erreur. En cas d'erreur côté serveur, l'application Flex peut interroger ce service d'erreur pour obtenir le message d'erreur réel. Cette méthode est également beaucoup plus souple que la simple mise en correspondance des codes de retour HTTP avec des messages statiques.

Toutefois, grâce au scripting ECMA de Flex, il est très facile de travailler avec des services REST basés sur XML.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X