|
|
|
|
|
- Leçon 7 - Consommer un Webservice
- Présentation
- Exemple pratique
- Importation d'un Webservice SOAP
- Consommation d'un Webservice SOAP
- Appel au Webservice
- Test du fonctionnement du Webservice
- Consommation d'un Webservice REST
- Appel du Webservice REST
- Test de l'appel au Webservice REST
- En résumé
Tuto - Développement d'une application Android et iOS
Leçon 7 - Consommer un Webservice Ce que vous allez apprendre : - Présentation.
- Importation et consommation d'un Webservice SOAP.
- Consommation d'un Webservice REST.
10 mn Un service Web est généralement défini comme une application accessible via des protocoles Internet standard. Les services Web permettent notamment l'interactivité entre plusieurs ordinateurs connectés sur le réseau Internet. Via les services Web, il est possible de faire exécuter des procédures et des traitements sur un serveur Web (.NET, SOAP ou J2EE) à distance depuis un poste client. Avec WINDEV Mobile, ces services Web sont utilisables en tant que client, via le protocole SOAP sur HTTP (le protocole standard d'Internet pour le transfert des pages HTML), grâce aux fonctions SOAPxx, DotNetxx et J2EExx. Quelle que soit la plateforme du serveur Web (.NET, J2EE, etc.), un service Web est accessible via l'utilisation de SOAP. Avec WINDEV Mobile, il n'est pas nécessaire de maîtriser ces informations. Un assistant se charge de ("presque") tout ! Exemple pratique Pour tester et manipuler un Webservice, nous mettons à votre disposition un Webservice spécifique pour ce tutoriel. Intégré au projet "WM Gestion Produit", ce Webservice permet d'interroger une base fournisseur pour vérifier la disponibilité (stock) d'un produit à partir de sa référence. Nous allons dans un premier temps, importer le Webservice dans le projet "WM Gestion Produit", puis l'utiliser dans l'application pour vérifier à partir d'une fiche Produit, la disponibilité du produit affiché.
Avertissement
Cette leçon est basée sur l'exemple WM Gestion Produits, manipulé dans la leçon 1. Pour suivre cette leçon, vous devez avoir effectué les manipulations des leçons précédentes.
Importation d'un Webservice SOAP Pour importer un Webservice dans le projet : - Sous le volet "Projet", dans le groupe "Projet", déroulez "Importer" et sélectionnez "Un Webservice".
- L'assistant d'importation se lance. Passez à l'étape suivante.
- Indiquez l'adresse à laquelle la description WSDL du Webservice doit être importée :
https://exemples.webdev.info/WSAUTOFORMATIONV2_WEB/awws/WSAutoformationV2.awws?wsdl Rappel : Ce Webservice permet d'interroger une base fournisseur pour vérifier la disponibilité (stock) d'un produit à partir de sa référence.
- Passez à l'étape suivante. L'importation du Webservice est réalisée.
- Validez la fenêtre d'information. Le Webservice importé est présent dans le dossier "Webservices importés" du volet "Explorateur de projet".
- Dans le volet "Explorateur de projet", déroulez le dossier "Webservices importés".
Arrêtons-nous un instant sur les informations affichées dans le volet "Explorateur de projet" : La structure est constituée de : - le nom du Webservice (WSAutoformationV2 dans cet exemple),
- le nom de chaque fonction (ProduitEnStock dans cet exemple).
Pour connaître la syntaxe d'appel du Webservice, il suffit de double-cliquer sur le nom de la fonction dans le volet "Explorateur de projet". L'éditeur de code affiche la description de la fonction, avec le prototype de l'appel de la fonction :
Consommation d'un Webservice SOAP Dans notre exemple "WM Gestion Produit", nous allons intégrer l'appel au Webservice dans la fenêtre interne permettant de voir le détail d'un produit. Un bouton "Stock" permettra de vérifier la disponibilité du produit affiché via le Webservice. Appel au Webservice Pour utiliser le Webservice : - Ouvrez sous l'éditeur la fenêtre interne "FI_Produit" (double-cliquez sur son nom dans le volet "Explorateur de projet" par exemple).
- Diminuez la largeur du champ "Réappro".
- Supprimez le champ "Quantité".
- Ajoutez un champ Bouton :
- Sous le volet "Création", dans le groupe "Champs usuels", cliquez sur .
- Cliquez dans la fenêtre à côté du champ "Réappro.".
- Le champ est automatiquement créé.
- Modifiez les caractéristiques du champ (option "Description" du menu contextuel). Ce champ a pour nom "BTN_Stock" et pour libellé "Stock".
- Affichez les événements associés au champ (option "Code" du menu contextuel).
- Dans l'événement "Clic sur BTN_Stock", saisissez le code WLangage suivant :
InfoConstruit("Nombre de produits ""%1"" en stock : %2", SAI_Référence, ...
ProduitEnStock(SAI_Référence))
Examinons ce code :- La fonction du Webservice ProduitEnStock est appelée. Ce code utilise le prototype de la fonction que nous avons précédemment affiché dans l'éditeur de code.
- La réponse est mise en forme et affichée.
- Fermez l'éditeur de code et enregistrez la fenêtre ( ou Ctrl + S).
- Fermez la fenêtre interne "FI_Produit".
Test du fonctionnement du Webservice Nous allons maintenant tester le fonctionnement du Webservice : - Ouvrez la fenêtre FEN_Avancé_LISTE_Produits (via la combiaison CTRL + E par exemple).
- Lancez le test de la fenêtre ( parmi les boutons d'accès rapide).
- Double-cliquez sur un produit : la fiche produit s'affiche.
- Cliquez sur "Stock".
- Validez la fenêtre d'information et fermez le simulateur.
Consommation d'un Webservice REST Dans notre exemple, nous avons consommé un Webservice SOAP. Il est également possible de consommer un WebService REST. Dans ce cas, il n'est pas nécessaire d'importer le Webservice dans l'application. Juste l'appel à la procédure voulue du Webservice est nécessaire. Pour l'exemple, nous avons déployé un Webservice REST qui effectue le même traitement que le Webservice SOAP utilisé précédemment. Ce Webservice REST permet d'obtenir le stock du produit spécifié en utilisant l'adresse suivante : https://exemples.webdev.info/produit/<Référence produit> Appel du Webservice REST Voyons comment utiliser ce Webservice REST dans notre exemple. - Retournez sous l'éditeur dans le code du champ Bouton BTN_Stock.
- Passez le code existant en commentaires (sélectionnez les lignes de code et utilisez la combinaison de touches Ctrl + //).
- Saisissez le code suivant :
h est un httpRequête
h.Méthode = httpGet
h.URL = "https://exemples.webdev.info/produit/" + SAI_Référence
h.ContentType = "application/json"
r est un httpRéponse = RESTEnvoie(h)
Contenu est une chaîne ANSI
SI r.CodeEtat = 200 ALORS
Contenu = r.Contenu
Info(Contenu)
SINON
Info("Une erreur est survenue " + ErreurInfo() + r.CodeEtat + r.DescriptionCodeEtat)
FIN
Ce code permet de : - Déclarer une variable de type httpRequête. Cette variable permet de définir les paramètres de la requête à effectuer pour interroger le Webservice REST. Les propriétés de cette variable sont :
- La méthode utilisée : GET dans notre cas.
- L'URL d'appel du Webservice : c'est l'URL que nous venons de voir. Dans notre cas, la référence du produit correspond à la valeur du champ SAI_Référence.
- Le type du contenu du message HTTP Ã envoyer au serveur. Dans notre cas, le message est en JSON.
- Envoyer la requête au serveur et récupérer la réponse grâce à la fonction RESTEnvoie. La réponse est une variable de type restRéponse.
- Mettre en forme la réponse.
- Fermez l'éditeur de code et enregistrez la fenêtre ( ou Ctrl + S).
Test de l'appel au Webservice REST Nous allons maintenant tester le fonctionnement du Webservice : - Ouvrez si nécessaire la fenêtre FEN_Avancé_LISTE_Produits (via la combiaison CTRL + E par exemple).
- Lancez le test de la fenêtre ( parmi les boutons d'accès rapide).
- Double-cliquez sur un produit : la fiche produit s'affiche.
- Cliquez sur "Stock".
- Validez la fenêtre d'information et fermez le simulateur.
Projet corrigé Vous voulez vérifier le résultat de vos manipulations ?
Un projet corrigé est disponible. Ce projet contient les différentes fenêtres et états créés et manipulés dans cette leçon. Pour ouvrir le projet corrigé, dans la page d'accueil, cliquez sur "Tutoriel" puis dans la zone "Tuto - Développement d'une application Android/iOS", double-cliquez sur "Gestion de produits Android/iOS - Corrigé". Cette leçon nous a permis de découvrir la manipulation des Webservices SOAP et REST. Notre tuto sur le développement d'une application mobile s'arrête ici. Vous pouvez approfondir vos connaissances sur WINDEV Mobile en consultant les pages de documentation suivantes :
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|