DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Communication / Webservices
  • Présentation
  • Comment mettre à disposition un Webservice ?
  • Création du Webservice
  • Gestion des contextes
  • Génération du Webservice
  • Déployer et tester un Webservice
  • Déployer un Webservice
  • Cas particulier : Déploiement et test d'un Webservice sur le poste local
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
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.).
Attention : Le déploiement d'un Webservice WINDEV ou WEBDEV nécessite l'utilisation d'un Serveur d'Application WEBDEV. Grâce à ce mode de diffusion, les Webservices 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 (média physique, 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 ?
Pour mettre à disposition un Webservice, il suffit de :
  1. Créer un Webservice.
  2. Générer un Webservice.
  3. Déployer le Webservice sur un Serveur d'Application WEBDEV.
Remarque : Pour tester le Webservice, il est possible de le déployer en local pour test.
Création du Webservice
Pour créer un Webservice :
  1. Créez un projet WINDEV ou WEBDEV de type Webservice ou une configuration de type Webservice dans un projet déjà existant.
    • Lors de la création d'un projet, sélectionnez "Webservice SOAP ou REST".
    • Pour créer une configuration de projet de type Webservice, sous le volet "Projet", dans le groupe "Configuration de projet", déroulez "Nouvelle configuration" et sélectionnez "Webservice".
  2. Créez une ou plusieurs collections de procédures :
    • Sous l'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 :
    • 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.
    • Les procédures peuvent être marquées comme publiques ou privées. Une procédure publique pourra être utilisée dans les projets qui importeront le Webservice. Une procédure privée ne pourra pas être utilisée dans les projets qui importeront le Webservice (la procédure ne sera pas visible dans l'explorateur de projet). Pour marquer une procédure comme publique ou privée, utilisez le menu contextuel sur le nom de la procédure dans l'explorateur de projet.
    • 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 ne doit pas avoir d'IHM (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é.
Génération du Webservice
Pour générer un Webservice :
  1. Sélectionnez si nécessaire la configuration correspondant au Webservice sous l'explorateur de projet.
  2. Générez le Webservice :
    • 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 de Webservice 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.
  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 : 09/10/2023

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