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