Le 14 septembre 2017, nous avons publié une version actualisée de notre Politique de confidentialité. En utilisant video2brain.com vous vous engagez à respecter ces documents mis à jour. Veuillez donc prendre quelques minutes pour les consulter.

WebDev 21 : Les web services

Utiliser un web service élaboré dans WebDev

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Dans cette vidéo, vous allez vous attaquer à un web service renvoyant des informations plus complexes.
08:53

Transcription

Nous allons maintenant essayer d'utiliser un webservice un peu plus élaboré et plus compliqué au niveau du traitement du retour des résultats puisque là, on va récupérer un fichier XML. Enfin, dans l'exemple précédent, on récupérait aussi un fichier XML mais qui était automatiquement extrait, on pourrait dire, par WebDev. Ici, comme le fichier va contenir plusieurs séries d'informations, il faudra agir différemment pour récupérer le contenu. Je vous propose d'aller prendre un autre Webservice sur le site Webservicex. Dans la partie Utilities, à droite, vous avez Global Weather. C'est un service, tout simplement, qui va vous permettre de récupérer la météo. Ce qui est intéressant ici, c'est qu'il y a deux parties dans ce Webservice. La première fonction vous permet de récupérer des villes par pays. Regardez comment elle fonctionne : Si je clique dessus je tape un nom de pays par exemple France. J'appelle et j'obtiens comme vous le voyez un fichier XML avec donc toutes les villes de France, alors, attention : toutes les villes de France dont ils ont la météo. Là, on est loin du compte au niveau des villes. Ensuite, vous avez l'autre fonction qui s'appelle GetWeather. Donc à laquelle on passe le nom de la ville et le nom du pays. Je n'ai pas regardé la liste mais j'imagine qu'il y a Marseille dedans. Donc, on va essayer, Marseille. Et, France, pour le pays bien sûr. Je clique sur Invoke. Et là, j'obtiens le résultat : c'est-à-dire en l'occurrence, la météo, sous forme de fichier XML. Vous voyez avec plusieurs champs, si je peux dire, sur balises, en tout cas, correspondant aux différentes informations météorologiques. Donc voilà, ce webservice est intéressant, on va essayer de s'en servir. Le wsdl, vous l'avez là. Si je sélectionne l'url et que je l'ouvre, juste par curiosité, voyez ici, encore une fois, vous voyez différents services, la syntaxe. On va récupérer cette url, on va la copier et on va la coller, enfin, l'insérer plus exactement dans les WebServices de WebDev, ici. On va prendre l'option utiliser un WebService dans ce projet. Encore une fois, on va coller l'url ici. Je continue. Voilà, il l'a récupéré, très bien. Je valide. Alors, on va regarder un peu ce qu'on a obtenu. Donc effectivement, l'objet ici qui s'appelle GetCitiesByCountry et enfin, GetWeather. Alors, on va déjà essayer d'utiliser le GetCitiesByCountry. On va le faire en plusieurs étapes parce qu'il y a pas mal de choses à voir ici. De toute façon, on va commencer par créer une nouvelle page qu'on va appeler Météo. Donc, je l'enregistre tout de suite. Météo. Donc, la première chose qu'on va faire, c'est récupérer la liste des villes d'un pays. On va le faire là aussi en plusieurs étapes. Le pays, on va le garder en dur, on va pas s'embêter avec ça. On va donc simplement ajouter un champ multilignes. Dans un premier temps, je voudrais vous montrer ce que renvoie le WebService. Donc ici, on va ouvrir le champ, ça sera la valeur de retour. On va l'appeler, d'ailleurs, Retour. On va créer un bouton que je vais appeler pour l'instant « Liste des villes ». Et on fera ensuite une COMBO qu'on remplira avec cette liste, évidemment. Donc ici, je vais appuyer sur F2 pour aller taper, donc, le code de récupération des villes. Dans un premier temps, nous allons essayer d'utiliser la fonction GetCitiesByCountry. Si je l'utilise telle quelle et que j'ouvre la parenthèse, vous voyez qu'il me demande un paramètre et là, contrairement à ce qu'on pourrait imaginer, ce n'est pas le nom du pays. C'est un objet de même type, en tout cas, le type a le même nom que la fonction. Effectivement, si on regarde sur la droite, il attend en fait ; je pense que c'est aussi parce qu'ils ont mis les mêmes noms dans les deux cas. Ça fait un peu une confusion donc il attend en fait un objet de ce type là, avec le nom du pays. Donc, il faut que je le définisse avant pour le passer en paramètre. C'est légèrement plus compliqué que ce qu'on a pu faire avant. Pour l'instant, je vais le laisser en commentaire. Donc ici, je vais définir un objet que je vais appeler pays, tout simplement. Et le type sera justement GetCitiesByCountry puisque c'est ce qu'il attend en paramètre. Ensuite, je définis une propriété de cet objet Country.Name, c'est ce que vous voyez ici. Ça correspond bien. Et là, je mets le nom du pays. On va changer un peu, on va prendre le Canada. Maintenant, je peux appeler ma fonction en lui passant un paramètre, non pas Canada, mais la variable Pays. Alors évidemment, ça a l'air de passer au niveau syntaxe mais ce n'est pas suffisant. Il faut que je récupère le retour pour renvoyer directement par la fonction. Justement ici, je vais le mettre dans le champ que j'ai créé tout à l'heure SAI_Retour pour qu'on voit dans un premier temps à quoi ça ressemble. Allons-y, on va tester cette page, je fais un GO. Je clique sur le bouton. Voilà le résultat. Donc, ici, vous avez un fichier XML qui contient toutes les villes du Canada encore une fois, pour lesquelles le WebService a un résultat météo. Donc, c'est ce qu'on voulait. Vous voyez que le champ qui contient la ville s'appelle City. On s'en doutait. Donc on va prendre ça. On va rechercher des villes par rapport à ça. Maintenant que j'ai ma liste, je vais aller remplir la COMBO en parcourant le fichier et en récupérant toutes les balises de type City. Donc, la première chose à faire est de créer un objet, un document XML dans notre code. Donc, on va écrire XMLDocument(. C'était la fonction qu'on avait utilisée pour ça. Et on lui donne le nom d'un document imaginaire qu'on va créer et qu'on manipulera à la suite dans le code. Donc, c'est simplement un objet créé à ce moment-là et qu'on va manipuler derrière. Donc, ce qu'il attend évidemment, c'est le contenu du fichier XML, en l'occurrence, il vient donc de SAI_Retour. Et dans les options, c'est du XML donc on ne précise rien, on va s'arrêter là. Encore une fois, dans l'idéal, faites un test. Si ça renvoie une erreur, on affiche l'erreur, etc... Je vais essayer de rester simple au niveau du code mais n'oubliez pas que toutes ces fonctions peuvent générer des erreurs et surtout ne pas les afficher. Donc là, on va imaginer que ça fonctionne. On va vider la COMBO au cas où on clique plusieurs fois sur le bouton. C'est une petite précaution simplement. Ces listes suppriment tout. Je n'ai pas créé la COMBO, c'est malin, voilà, créer, parce que le but ici, c'est d'aller lister les villes dans cette combo. Voilà. Donc, on va l'appeler ville, tout simplement. OK, je reviens sur le code. Je vide donc la combo. Puis, on va rechercher la première balise qui correspond à ce qui nous intéresse, en l'occurence, city. Alors, si vous vous souvenez de la vidéo qui expliquait cette façon de faire, on utilise une fonction qui s'appelle XML recherche, sur le document XML qui a donc été défini au-dessus. On lui précise quelle balise on cherche, en l'occurrence, ici c'est une balise, c'est City, alors, attention à la casse. Dans le fichier récupéré, le mot City commence par une majuscule. Sinon, ça ne fonctionnne pas. Donc, c'est bien une balise et l'option de recherche, c'est une recherche exacte. Une fois qu'on a trouvé donc, enfin on suppose qu'on a trouvé, la première balise, on va faire un TANT QUE : TANTQUE XMLTrouve sur le document XML, ("DocXML") Qu'est-ce qu'on fait ? Eh bien, on va l'ajouter à la COMBO. ListeAjoute dans la COMBO. XML_Donnée de XMLDocument ("DocXML"). On ferme la parenthèse. Et on va au suivant avec un XMLSuivant(). Donc là, c'est bon, on a parcouru les différentes villes. Pour faire propre, on peut faire un XMLTermine pour fermer le fichier, libérer la mémoire, etc. et trier la combo. Ce n'est pas du tout obligatoire mais ça sera plus cool. Donc, on va tester tout ça. On va cliquer sur le bouton. Liste des villes et voilà. Ça fonctionne parfaitement, vous avez ici la liste des différentes villes dont on peut récupérer la météo. C'est ce qu'on va faire dans la prochaine vidéo, on va récupérer la météo d'une ville et l'afficher dans les différents champs correspondants.

WebDev 21 : Les web services

Créez et utilisez les web services et les services REST avec WebDev. Donnez l’accès à vos données et à vos services aux applications externes qui devront les utiliser.

1h59 (21 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
WebDev WebDev 21
Spécial abonnés
Date de parution :13 avr. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !