Formation flex : Accéder à des services web SOAP
Par Dai, mercredi 27 février 2008 à 10:41 :: Cours et Formation Flex - AIR :: #49 :: rss
Nous arrivons au dernier chapitre consacré à la formation de Flex avec adobe flex builder. J’espère que tous ces cours et tutoriaux vous ont plu, et que dorénavant, vous avez une meilleure idée de ce que l’on peut réaliser avec cette RIA. Sans plus attendre, voici le plan du chapitre 13 sur les web services avec Flex:
1.Utiliser des services web de type SOAP
2.Appeler des méthodes sur ces services web
3.Utiliser le gestionnaire de résultat et le gestionnaire d’erreur d’un service web
4.Appeler plusieurs méthodes sur le même service web
5.Passer des paramètres à ces méthodes
1.Utiliser des services web de type SOAP
Les applications Flex peuvent interagir avec un service web simplement en utilisant une URL vers un document WSDL. Ces requêtes et réponses seront formatées en messages SOAP (Simple Object Access Protocol) ou transportées par http. L’utilisation du web service en flex est simple, suffit d’une URL du type :
Exemple avec un script PHP
http://www.monDomaine.tld/myDir/myService.php?wsdl
La création et la consommation d’un Web Service (ou Service Web ) se fait en 2 temps :
1. Créer l’objet WebService avec l’URL
2. Appeler la méthode souhaitée
Retrouvez les détails dans le pack à la fin du billet.
Exemple de WebService en flex :
<mx:WebService fault="No default" id="No default" load="No default" protocol="http|https" showBusyCursor="false|true" wsdl="No default" useProxy="true|false" />
Exemple de connexion à un service web
<mx:WebService id="foo" wsdl="http://somewhere.com/my.wsdl" />
2.Appeler des méthodes sur ces services web
Pour appeler la méthode à distance, rien de plus facile, utiliser la syntaxe :
monWebServiceId.maMethode()
Cette méthode peut être appelée soit par un événement système (lors d’un creationComplete) soit par un événement utilisateur (click sur un bouton par exemple).
Puis, il reste à récupérer les résultats (données XML) avec la propriété « lastResult ». Si vos données XML sont bien construites, associez un dataGrid aux résultats et vous obtenez un joli tableau tout bien formaté.
Un exemple vaut mieux qu’un long discours:
<mx:Application …
creationComplete="simpletest.outMethod()"/>
<mx:WebService id="simpletest"
wsdl="http://somewhere.com/simplews.cfc?wsdl"/>
<mx:Label
text="{simpletest.outMethod.lastResult}"/>
Attention : pensez à loader votre méthode avant de récupérer les résultats.
Voir détail dans le pack pour les autres manipulations.
3.Utiliser le gestionnaire de résultat et le gestionnaire d’erreur d’un service web
Cela vous permet de manipuler les données retournées avant de les utiliser, par exemple effectué un traitement sur les données récupérées.
result="wsResultHandler(event.result)"
De même récupérez les erreurs avec la propriété fault :
Fault= myFaultHandler(event.fault.faultstring)
4.Appeler plusieurs méthodes sur le même service web
Si vous désirez utiliser plusieurs méthodes et ainsi ajoutez des gestionnaires de résultat, utilisez la balise <mx :operation>.
Exemple :
<mx:WebService id="simpletest" wsdl=“http://localhost:8700/services/ FlexSimpleWS?wsdl"/> <mx:operation name="methodOne" result="handlerOne(event.result)"/> <mx:operation name="methodTwo" result="handlerTwo(event.result)"/> </mx:WebService> <mx:Button label="Method One" click="simpletest.methodOne()"/> <mx:Button label="Method Two" click="simpletest.methodTwo()"/>
5.Passer des paramètres à ces méthodes
Passer explicitement les arguments de 2 manières:
- Identique aux arguments que l’on passe à une fonction
- Peuvent être des objets complexes
Exemple:
<mx:Application … creationComplete="simpletest.outMethod(arg1,arg2)"/>
Passer des arguments par liaison
- Cela permet de passer des valeurs liées à des contrôles ou à des champs de modèles de données
- Cela permet de valider des valeurs avant de les envoyer
Pour toutes questions et remarques, laissez vos commentaires.
Téléchargement des codes sources, exemples et cours
Télécharger le pack du chapitre 13 : Flex et web service




Commentaires
1. Le jeudi 28 février 2008 à 23:41, par carpentier
2. Le jeudi 6 mars 2008 à 18:03, par adobe flex
3. Le samedi 3 mai 2008 à 22:24, par profesyonelhaber
Ajouter un commentaire