DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Développer et consommer un Webservice / Développer et consommer un Webservice SOAP
  • Présentation
  • Comment mettre à disposition un Webservice SOAP ?
  • Création du Webservice SOAP
  • Gestion des contextes
  • Utilisation d'une base de données HFSQL
  • Génération du Webservice SOAP
  • Déployer et tester un Webservice
  • Déployer un Webservice
  • Cas particulier : Déploiement et test d'un Webservice sur le poste local
WINDEV
WindowsLinuxJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac Catalyst
Autres
Procédures stockées
Présentation
WINDEV et WEBDEV permettent de générer directement des Webservices. Ces Webservices peuvent ensuite être utilisés dans des projets WINDEV, WEBDEV, WINDEV Mobile ou dans n'importe quel autre langage.
Un Webservice est constitué d'un ensemble de fonctions SANS interface. En effet, étant donné que ce type de module s'exécute sur un serveur, il n'y a aucune interface utilisateur à réaliser. Le webservice sera donc constitué de fonctions en WLangage organisées dans des collections de procédures. Ces fonctions peuvent manipuler une base de données (HFSQL, Oracle, AS/400, etc.).
Il existe deux types de Webservices :
  • Les webservices SOAP (présentés dans cette page).
  • Les Webservices REST. Pour plus de détails, consultez Créer un Webservice REST.
Attention : Le déploiement d'un Webservice SOAP WINDEV ou WEBDEV nécessite l'utilisation d'un Serveur d'Application WEBDEV. Grâce à ce mode de diffusion, les Webservices SOAP créés avec WINDEV/WEBDEV présentent plusieurs types d'avantages :
  • Webservices déployés sur un Serveur d'Application WEBDEV (compatible avec tous les serveurs Web).
  • Nombreux modes de déploiement du Webservice (HTTP, FTP, Cloud).
  • Montée en charge importante possible.
  • Webservices pouvant fonctionner sur toutes les versions de Windows (32 et 64 bits) ainsi que sous Linux.
Comment mettre à disposition un Webservice SOAP ?
Pour mettre à disposition un Webservice SOAP, il suffit de :
  1. Créer un Webservice SOAP.
  2. Générer un Webservice SOAP.
  3. Déployer le Webservice SOAP sur un Serveur d'Application WEBDEV.
Remarque : Pour tester le Webservice SOAP, il est possible de le déployer en local pour test.
Création du Webservice SOAP
Pour créer un Webservice SOAP :
  1. Créez un projet WINDEV ou WEBDEV de type Webservice SOAP ou une configuration de type Webservice SOAP dans un projet déjà existant.
    • Lors de la création d'un projet, sélectionnez "Webservice SOAP ou REST".
      Sélectionnez ensuite "Webservice SOAP".
    • Pour créer une configuration de projet de type Webservice SOAP, dans le volet "Explorateur de projet", affichez le menu contextuel de l'option "Configurations" et sélectionnez "Nouvelle configuration". Dans l'assistant qui se lance, sélectionnez "Webservice SOAP ou REST" puis "Webservice SOAP".
  2. Créez une ou plusieurs collections de procédures :
    • Sous le volet "Explorateur de projet", sélectionnez le dossier "Procédures".
    • Dans le menu contextuel, sélectionnez "Nouveau".
  3. Créez des procédures globales ou fonctions correspondant aux traitements à réaliser sur le serveur.
    // Procédure globale Addition
    PROCÉDURE Addition(nNombre1 est un entier, nNombre2 est un entier)
    
    nRésultat est un entier
    nRésultat = nNombre1 + nNombre2
    
    RENVOYER nRésultat

    Chaque procédure globale pourra être exécutée par le Serveur d'Application WEBDEV.

    Remarques :
    • Typage des paramètres : Si les paramètres des procédures ne sont pas typés, ils seront automatiquement reçus sous forme de chaînes de caractères Unicode. Il est donc nécessaire de typer les paramètres qui doivent être différents d'une chaîne de caractères Unicode.
    • Portée des procédures : Les procédures peuvent être publiques, restreintes ou privées.
      • Une procédure publique pourra être utilisée dans les projets qui importeront le Webservice SOAP.
      • Une procédure privée ne pourra pas être utilisée dans les projets qui importeront le Webservice SOAP (la procédure ne sera pas visible dans le volet "Explorateur de projet").
      • Une procédure restreinte sera utilisable dans tout le projet mais sans être exportée lors de la génération d'un webservice ou d'un composant externe.
      Remarque : Il est possible d'indiquer la portée d'une procédure :
      • lors de la création de la procédure.
      • via le menu contextuel de la procédure présente dans le volet "Explorateur de projet".
    • Valeur de retour : Les procédures peuvent renvoyer des classes, des structures, des tableaux de structures ou des tableaux de classes. Les tableaux renvoyés sont limités à une seule dimension.
    Attention : Le Webservice SOAP ne doit pas avoir d'IHM/UI (pas de fenêtre, d'état, de fenêtre de trace ou de boîte de dialogue). Il est également limité par les droits définis sur le serveur Web (compte "Invité Internet" généralement sous Windows).
  4. Saisissez si nécessaire le code d'initialisation et de fermeture du projet. Ces deux codes seront respectivement exécutés au chargement et au déchargement de la bibliothèque du Webservice.

Gestion des contextes

Pour conserver la valeur de variables globales lors d'appels successifs à un webservice, il est possible d'utiliser une gestion des contextes. La gestion des contextes est réalisée sur disque : la valeur des différentes variables est mémorisée sur le serveur dans un fichier. Un identifiant de contexte permet de récupérer le contexte mémorisé lors d'un prochain appel au webservice. Cet identifiant est mémorisé dans un entête SOAP sur le poste client. Cet identifiant garantie la sécurité des données mémorisées.
Le fonctionnement est le suivant :
  • L'identifiant est mémorisé dans un entête SOAP. Lors de l'utilisation de la fonction DéclareContexteWebservice, le WSDL est modifié et indique que le format accepte une partie entête avec un nom précis et un format spécifique.
  • Le client transmet cette information.
    • Au premier appel, la valeur est vide, le serveur crée une nouvelle session.
    • Si la valeur est absente, le serveur crée une nouvelle session.
  • Le serveur renvoie l'information demandée.
Pour mettre en place une gestion des contextes :
  1. Utilisez la fonction DéclareContexteWebservice pour mémoriser les variables voulues. Il est conseillé d'utiliser cette fonction dans le code d'initialisation du projet (pour les variables du projet) et / ou dans le code d'initialisation des collections de procédures ou des classes. En règle générale, il faut utiliser cette fonction dans le traitement où sont déclarées et initialisées les variables.
    Remarques :
    • Le contexte est toujours sauvé sur le disque et transmis via un entête Soap.
    • La fonction DéclareContexteWebservice utilise les contextes sur disque. Les valeurs des variables sont toujours restaurées.
    • La taille totale des valeurs des différentes variables n'est pas limitée.
    • La fonction DéclareContexteWebservice peut être utilisée pour des données sensibles (mot de passe de l'utilisateur par exemple).
    • Si deux variables sauvées ont le même nom (par exemple une dans le projet et l'autre dans une page), les deux variables sont mémorisées indépendamment.
    • La fonction DéclareContexteWebservice renvoie Faux si une des variables n'a pas été restaurée.
    • Toutes les variables passées à la fonction DéclareContexteWebservice lors d'un appel de webservice pourront être récupérées lors de l'appel suivant. Les variables passées précédemment sont automatiquement sauvegardées une nouvelle fois.
    • Les variables de type simple (entier, chaîne, etc.) sont gérées ainsi que les variables de type structure, classe, tableau ou tableau associatif. Ne sont pas gérés les tableaux fixes, les membres globaux de classes, et les tableaux associatifs de structures locales.
  2. Pour supprimer une variable spécifique du contexte, il est possible d'utiliser la fonction AnnuleContexteWebservice.
Remarque : L'administrateur WEBDEV donne la possibilité de configurer la durée de validité des contextes webservices (option "Durée des contextes webservices" dans l'onglet "Configuration"). Dès que la durée indiquée est écoulée, et si aucune nouvelle requête n'a été effectuée, le fichier de contexte est supprimé.

Utilisation d'une base de données HFSQL

Une webservice SOAP peut être lié à une analyse et manipuler des fichiers de données, par exemple via des requêtes.
Les structures et les classes du webservice peuvent servir à décrire les fichiers de données. Quelques astuces sont à connaître :
  • Pour copier simplement un enregistrement d'un fichier de données HFSQL dans une structure ou un objet, utilisez la fonction FichierVersMémoire.
  • Pour copier simplement le contenu d'un fichier de données HFSQL dans une structure ou un objet, utilisez la fonction FichierVersTableau.
  • Pour créer facilement les classes correspondant aux fichiers de la base de données, utilisez le volet "Explorateur de projet" :
    1. Sélectionnez le fichier de données voulu.
    2. Dans le menu contextuel, sélectionnez l'option "Générer un classe modèle".
Génération du Webservice SOAP
Pour générer un Webservice SOAP :
  1. Sélectionnez si nécessaire la configuration correspondant au Webservice SOAP via le volet "Explorateur de projet".
  2. Générez le Webservice SOAP :
    • Sous le volet "Projet", dans le groupe "Génération", cliquez sur "Générer".
    • Cliquez sur l'icône de génération parmi les bouton d'accès rapide.
  3. L'assistant de génération du Webservice SOAP se lance.
  4. Dans l'assistant, indiquez :
    • le nom du Webservice. Par défaut, le nom du Webservice correspond au nom du projet en cours. Il est possible de modifier le nom du Webservice (le nom du projet ne sera pas modifié).
    • le mode de passage des paramètres aux fonctions.
      Remarque : Il est conseillé d'utiliser le paramétrage direct des fonctions.
  5. Passez à l'étape suivante.
  6. Sélectionnez les éléments à intégrer dans le Webservice. Ces éléments correspondent à tout sauf ce qui correspond à l'interface (fenêtre, page, état, etc.).
    Cochez uniquement les éléments à intégrer et ceux qui sont appelés dans le Webservice. Vous pouvez :
    • Ajouter des éléments
      Tout type de fichier peut être ajouté à la liste des éléments insérés dans la bibliothèque : images, fichiers texte, etc.
    • Supprimer des éléments
      Les fichiers correspondants et leur dépendance ne seront pas pris en compte dans la bibliothèque.
    • Créer le webservice à partir d'une description existante (fichier *.WDU)
      Lors de la création d'une bibliothèque WINDEV, un fichier ".WDU" du même nom est automatiquement créé. Ce fichier contient toutes les références des éléments intégrés à la bibliothèque.
  7. Passez à l'étape suivante.
  8. Cochez les éléments accessibles. Les éléments accessibles correspondent aux procédures qui contiennent des fonctions visibles par l'application cliente qui appelle le Webservice.

    Attention : Si vous rendez accessible une collection de procédures, toutes les procédures globales appartenant à cette collection seront accessibles. Si vous souhaitez masquer certaines procédures, vous avez deux méthodes :
    • mettre ces procédures dans une collection à part et ne pas rendre accessible cette collection.
    • utiliser le mot PRIVE pour rendre inaccessible la procédure (syntaxe : PROCEDURE PRIVE MaProc()). Pour plus de détails, consultez Procédures globales.
  9. Terminez l'assistant pour générer le Webservice SOAP.
  10. L'assistant de déploiement est automatiquement lancé à la suite.
Déployer et tester un Webservice

Déployer un Webservice

Pour être utilisable, un Webservice doit être déployé sur un Serveur d'Application WEBDEV.
Il existe plusieurs méthodes de déploiement :
  • Déploiement du Webservice sur un serveur d'application WEBDEV distant.
  • Déploiement du Webservice dans le CLOUD pour les applications PC SOFT.
  • Déploiement du Webservice via le service d'hébergement de test PC SOFT.
  • Création d'un package de déploiement distant.
  • Création d'une installation par média physique.
  • Déploiement du Webservice sur le poste local.
  • Création d'une image docker du Webservice.
Les options de déploiement d'un Webservice sont identiques à celles de déploiement d'un site WEBDEV. Pour plus de détails, consultez Déploiement d'un site.

Cas particulier : Déploiement et test d'un Webservice sur le poste local

Il est possible de tester le Webservice créé directement sur le poste du développeur. Pour cela, il suffit de choisir l'option "Déployer le Webservice sur le poste local". Ce type d'installation est disponible uniquement si WEBDEV est disponible sur le poste de développement. Dans ce cas, le serveur d'application utilisé est celui de WEBDEV.
A la fin de l'installation, un écran s'affiche indiquant 2 liens :
  • un lien qui indique l'adresse de la page de test du webservice (http://utilisateur-pc/MONWEBSERVICE_WEB/awws/index.htm)
  • un lien qui indique l'adresse du WSDL (http://utilisateur-PC/MONWEBSERVICE_WEB/awws/MonWebservice.awws?wsdl)
Après avoir cliqué sur le lien ou saisi l'adresse dans votre navigateur, une page HTML s'affiche contenant les accès à toutes les fonctions développées dans le Webservice ainsi qu'un lien vers le WSDL. Cette page est automatiquement créée à la génération du Webservice ainsi que toutes les pages HTML permettant de tester chaque fonction du Webservice.
Dans notre exemple, on trouve donc l'accès à la fonction "Addition" :
Lorsque vous cliquez sur une fonction pour la tester, une nouvelle page HTML s'affiche : cette page contient des champs permettant de saisir les paramètres d'appel de la fonction testée. Dans ce cas, il suffit de remplir les champs et de cliquer ensuite sur le bouton "Test". Une page de résultat s'affichera en retour. Dans notre exemple, il faut passer deux nombres à la fonction "Addition" :
La page de résultat générée sera :
Le résultat est au format XML. La ou les valeurs de retour sont encapsulées dans des balises XML. Dans notre exemple, la valeur de retour de la fonction "Addition" se trouve entourée de la balise "AdditionResult".
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 06/01/2025

Signaler une erreur ou faire une suggestion | Aide en ligne locale