PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Nouveauté WINDEV Mobile 27 !
  • Ce que vous allez apprendre dans cette leçon
  • Présentation
  • Exemple pratique
  • Importation d'un Webservice
  • Consommation d'un Webservice
  • Consommation d'un Webservice REST
Leçon 4.7. Consommer un Webservice
Ce que vous allez apprendre dans cette leçon
  • Présentation.
  • Importation et consommation d'un Webservice SOAP.
  • Consommation d'un Webservice REST.
Durée de la leçon

Durée estimée : 10 mn
Leçon précédenteSommaireLeçon suivante
Présentation
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 ...), un service Web est accessible via l'utilisation de SOAP.

Note

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é.
  • Pour suivre cette leçon, ouvrez si nécessaire le projet "WM Gestion Produits" que vous avez manipulé dans la leçon précédente.
    1. Affichez la page d'accueil de WINDEV Mobile (Ctrl + <).
    2. Dans la page d'accueil, cliquez sur "Tutoriel" puis dans la zone "Partie 4 - Développement d'une application Android/iOS", double-cliquez sur "Gestion de produits Android/iOS (Exercice)".
    3. WINDEV Mobile vous propose d'ouvrir le projet que vous avez manipulé dans la leçon précédente. Vous pouvez ouvrir le projet présent sur votre poste ou ouvrir le projet original. Choisissez "Ouvrir la copie locale".

      Corrigé

      Un projet corrigé est disponible. Ce projet contient les différentes fenêtres créées dans cette leçon. Pour ouvrir le projet corrigé, dans la page d'accueil, cliquez sur "Tutoriel" puis dans la zone "Partie 4 - Développement d'une application Android/iOS", double-cliquez sur "Gestion de produits Android/iOS (Corrigé)".
Importation d'un Webservice
  • Pour importer un Webservice dans le projet :
    1. Sous le volet "Projet", dans le groupe "Projet", déroulez "Importer" et sélectionnez "Un Webservice".
    2. L'assistant d'importation se lance. Passez à l'étape suivante.
    3. 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.
      Assistant d'importation d'un Webservice
    4. Passez à l'étape suivante. L'importation du Webservice est réalisée.
      Importation réussie
    5. Validez la fenêtre d'information. Le Webservice importé est présent dans le dossier "Webservices importés" du volet "Explorateur de projet".
    6. 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" :
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 :
Appel de la fonction
Consommation d'un Webservice
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.
  • Pour utiliser le Webservice :
    1. Ouvrez sous l'éditeur la fenêtre interne "FI_Produit" (double-cliquez sur son nom dans le volet "Explorateur de projet" par exemple).
    2. Diminuez la largeur du champ "Réappro".
    3. Supprimez le champ "Quantité".
    4. Ajoutez un champ Bouton :
      • Sous le volet "Création", dans le groupe "Champs usuels", cliquez sur Créer un champ Bouton.
      • Cliquez dans la fenêtre à côté du champ "Réappro".
      • Le champ est automatiquement créé.
    5. Modifiez les caractéristiques du champ (option "Description" du menu contextuel). Ce champ a pour nom "BTN_Stock" et pour libellé "Stock".
      Positionnement du champ Bouton 'Stock'
    6. Affichez les événements associés au champ (option "Code" du menu contextuel).
    7. Dans l'événement "Clic sur BTN_Stock", saisissez le code WLangage suivant :
      // Affiche la réponse du Webservice SOAP
      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.
    8. Fermez l'éditeur de code et enregistrez la fenêtre (Enregistrer la fenêtre ou Ctrl + S).
    9. Fermez la fenêtre interne "FI_Produit".
  • Nous allons maintenant tester le fonctionnement du Webservice :
    1. Ouvrez la fenêtre FEN_Avancé_LISTE_Produits (via la combiaison CTRL + E par exemple).
    2. Lancez le test de la fenêtre (Tester la fenêtre parmi les boutons d'accès rapide).
    3. Double-cliquez sur un produit : la fiche produit s'affiche.
    4. Cliquez sur "Stock".
      Test du Webservice
    5. 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>


  • Voyons comment utiliser ce Webservice REST dans notre exemple.
    1. Retournez sous l'éditeur dans le code du champ Bouton BTN_Stock.
    2. Passez le code existant en commentaires (sélectionnez les lignes de code et utilisez la combinaison de touches Ctrl + //).
    3. Saisissez le code suivant :
      // Affiche la réponse du Webservice REST
      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 restRéponse = RESTEnvoie(h)
      Contenu est une chaîne ANSI
       
      SI r.CodeEtat = 200 ALORS // Requête traitée avec succès
      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.
    4. Fermez l'éditeur de code et enregistrez la fenêtre (Enregistrer la fenêtre ou Ctrl + S).
  • Nous allons maintenant tester le fonctionnement du Webservice :
    1. Ouvrez si nécessaire la fenêtre FEN_Avancé_LISTE_Produits (via la combiaison CTRL + E par exemple).
    2. Lancez le test de la fenêtre (Tester la fenêtre parmi les boutons d'accès rapide).
    3. Double-cliquez sur un produit : la fiche produit s'affiche.
    4. Cliquez sur "Stock".
    5. Validez la fenêtre d'information et fermez le simulateur.
Leçon précédenteSommaireLeçon suivante
Version minimum requise
  • Version 27
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire