DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Développer et consommer un Webservice / Développer un Webservice REST
  • Création des points d'entrée
  • Méthode 1 : Création manuelle d'un point d'entrée
  • Méthode 2 : Création automatique des points d'entrée d'accès à un fichier de données
  • Méthode 3 : Création des points d'entrée depuis une classe ou une collection de procédures
  • Remarques
  • Composition de la ressource (ou partie d'URL)
  • Gestion des codes retour dans le code des procédures
WINDEV
WindowsLinuxJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac Catalyst
Autres
Procédures stockées
Création des points d'entrée
L'assistant de création des points d'entrée d'un Webservice REST est lancé :
  • lors de la création d'une nouvelle description de Webservices REST.
  • sous le volet "Webservice REST", dans le groupe "Points d'entrée", en cliquant sur "Nouveau".
    Volet

    Remarque : Le volet "Webservice REST" est disponible uniquement lorsqu'une description de Webservice REST est affichée sous l'éditeur.
L'assistant de création d'un point d'entrée propose de sélectionner la méthode de création des points d'entrée :
Méthode 1 : Création manuelle d'un point d'entrée
Pour créer manuellement un point d'entrée :
  1. Dans l'assistant, sélectionnez l'option "Créer un point d'entrée".
  2. Passez à l'étape suivante.
  3. Spécifiez la procédure globale WLangage associée au point d'entrée. Cette procédure peut être créée ou être sélectionnée parmi les procédures globales existantes.
    Choix de la procédure
  4. Passez à l'étape suivante.
  5. Choisissez la méthode HTTP représentant l'action à réaliser (GET, PUT, ...).
    Choix de la méthode HTTP
  6. Passez à l'étape suivante.
  7. Définissez la ressource (ou partie d'URL) correspondant au point d'entrée. Cette ressource peut comporter des éléments statiques ou des éléments variables (paramètres).
    Ressource du point d'entrée
    Pour plus de détails sur la ressource, consultez le paragraphe Composition de la ressource.
  8. Passez à l'étape suivante.
  9. Définissez le format de la requête et le format de la réponse. Le standard en REST est JSON mais d'autres formats sont disponibles.
    • Le format de la requête indique comment sont formatés les données passées lors de l'appel REST.
      Format de la requête
      Ce format peut être sous la forme :
      • Formulaire HTML,
      • JSON,
      • XML,
      • Texte (type MIME "Text/Plain"),
      • Binaire (pour des images par exemple),
      • Variable (le format est libre et doit être indiqué par programmation par la fonction WebserviceLitTypeMIME).
    • Désérialisation automatique : Dans le cas d'une action de type POST, PUT ou PATCH, il est possible de désérialiser automatiquement les données passées en paramètre de la requête dans un paramètre de la procédure associée au point d'entrée :
      Désérialisation
      • Cochez la case "Désérialiser automatiquement le contenu de la requête dans un paramètre de la procédure associée au point d'entrée.".
        Attention : si la procédure n'a pas de paramètre défini, cette case à cocher n'est pas active.
      • Sélectionnez dans la liste le nom du paramètre cible.
        Attention : Il est nécessaire que le code de la procédure gère le paramètre cible. Il est très important et obligatoire de typer le paramètre de la procédure. Les types de paramètres autorisés dans la procédure sont : buffer, chaîne Ansi, structure, tableau, objet. Les types simples (entier, date, heure, booléen, ...) ne sont pas autorisés.
        Pour plus de détails, consultez WebServices REST : Désérialisation automatique de la requête.
        Remarque : Si des modifications doivent être effectuées dans la procédure, il est possible de configurer la désérialisation automatique depuis la fenêtre de description du Webservice REST.
    • Le format de la réponse indique comment sont formatés les données récupérées en retour d'un appel REST.
      Format de la requête
      Ce format peut être sous la forme :
      • Aucun,
      • JSON,
      • XML,
      • Texte (type MIME "Text/Plain"),
      • Binaire (pour des images par exemple),
      • Variable (le format est libre et doit être indiqué par programmation par la fonction WebserviceEcritTypeMIME).
  10. Passez à l'étape suivante.
  11. Saisir la description du point d'entrée (texte libre).
  12. Validez.
La description des différents points d'entrée est affichée sous l'éditeur.
Format de la requête
Méthode 2 : Création automatique des points d'entrée d'accès à un fichier de données
Pour créer automatiquement les points d'entrée et les procédures pour un fichier de données de l'analyse :
  1. Dans l'assistant, sélectionnez l'option "Créer les points d'entrée d'accès à un fichier de données".
  2. Sélectionnez le fichier de données présent dans l'analyse sur lequel vous souhaitez décrire les points d'entrée.
  3. Passez à l'étape suivante.
  4. Sélectionnez les rubriques que vous souhaitez exposer dans le Webservice.
    Ces rubriques seront accessibles en lecture et/ou écriture au travers des points d'entrée du Webservice REST.
  5. Passez à l'étape suivante.
  6. Sélectionnez la clé qui permettra d'accéder à un enregistrement du fichier de données pour le lire, le modifier ou le supprimer.
  7. Passez à l'étape suivante.
  8. Sélectionnez le format utilisé pour l'échange des données lors de l'appel des points d'entrée du Webservice REST. 3 formats sont disponibles :
    • JSON (UTF-8) : Les données envoyées ou retournées sont au format JSON.
    • JSON (UTF-8) (utilisation de la fonction HEnregistrementVersJSON) : Les données sont formatées dans un objet intermédiaire créé à l'aide de la fonction HEnregistrementVersJSON.
    • XML : Les données envoyées ou retournées sont au format XML.
  9. Passez à l'étape suivante.
  10. Sélectionnez la liste des points d'entrée qui seront générés lors de la création du Webservice REST.
    Par défaut, tous les types de points d'entrée sont générés :
    • Création : Ajout d'un enregistrement dans le fichier de données.
    • Lecture : Recherche et lecture d'un enregistrement du fichier de données.
    • Modification : Mise à jour d'un enregistrement du fichier de données.
    • Suppression : Suppression d'un enregistrement du fichier de données.
    • Lecture de tous les enregistrements : Lecture de tous les enregistrements du fichier de données.
  11. Passez à l'étape suivante.
  12. C'est terminé. L'assistant génère le code source en objet (POO) et le Webservice REST avec tous les points d'entrée. La classe créée contient :
    • la déclaration des membres représentant les rubriques de l'enregistrement qui est manipulé (utilisation du MAPPING).
    • la déclaration des différentes méthodes représentant les différents points d'entrée du Webservice REST. Une méthode pour chaque point d'entrée du Webservice REST.
    • une méthode sCréation pour le point d'entrée de type Création.
    • une méthode sLecture pour le point d'entrée de type Lecture.
    • une méthode sModification pour le point d'entrée de type Modification.
    • une méthode Suppression pour le point d'entrée de type Suppression.
    • une méthode sLectureTous pour le point d'entrée de type Lecture de tous les enregistrements.
Méthode 3 : Création des points d'entrée depuis une classe ou une collection de procédures
Pour créer automatiquement les points d'entrée depuis une classe ou une collection de procédures :
  1. Dans l'assistant, sélectionnez l'option "Créer les points d'entrée depuis les procédures d'une collection".
  2. Sélectionnez dans la liste la collection de procédures ou la classe associée au point d'entrée.
    Choix de la procédure
  3. Passez à l'étape suivante.
  4. Sélectionnez les procédures et ou les méthodes qui seront exposées par le Webservice REST. La ressource associée à chaque procédure ou méthode sera automatiquement initialisée en fonction du nom de la procédure et de ses paramètres.
    Choix des procédures/méthodes

    Pour chaque procédure sélectionnée, précisez la méthode HTTP correspondante.
  5. Passez à l'étape suivante.
  6. Définissez le format de la requête et le format de la réponse. Le standard en REST est JSON mais d'autres formats sont disponibles.
    • Le format de la requête indique comment sont formatés les données passées lors de l'appel REST.
      Format de la requête
      Ce format peut être sous la forme :
      • Formulaire HTML,
      • JSON,
      • XML,
      • Texte (type MIME "Text/Plain"),
      • Binaire (pour des images par exemple),
      • Variable (le format est libre et doit être indiqué par programmation par la fonction WebserviceLitTypeMIME).
    • Le format de la réponse indique comment sont formatés les données récupérées en retour d'un appel REST. Ce format peut être sous la forme :
      • Aucun,
      • JSON,
      • XML,
      • Texte (type MIME "Text/Plain"),
      • Binaire (pour des images par exemple),
      • Variable (le format est libre et doit être indiqué par programmation par la fonction WebserviceEcritTypeMIME).
  7. Terminez l'assistant.
La description des différents points d'entrée est affichée sous l'éditeur.
Format de la requête
Remarques

Composition de la ressource (ou partie d'URL)

La ressource est composée :
  • d'éléments statiques.
  • d'éléments variables.
  • de paramètres communs (optionnels).
Les éléments statiques représentent les objets manipulés. Par exemple, "/Clients" pour manipuler des clients.
Dans l'assistant de création de la ressource, un élément statique correspond à une "Composante fixe".
Les éléments variables identifient les ressources manipulées (un numéro de client, un numéro de commande, ...). Par exemple "/Clients/{NumCli}" permet d'indiquer le client manipulé via son numéro de client.
  • Dans l'assistant de création de l'URL, un élément variable correspond :
    • soit à une composante variable de type paramètre de procédure. Cette composante est récupérée automatiquement dans les paramètres de la procédure WLangage associée.
    • soit à une composante variable de type programmation, récupéré par programmation par la fonction WebserviceParamètre.
  • Un élément variable est représenté par la syntaxe "{Nom composante variable}".
    Par exemple, "/Clients/10" permet de manipuler les clients ayant l'identifiant 10.
  • Il est habituel de passer les éléments variables dans l'URL lors d'un appel à une fonction REST.
  • Chaque composante variable de type programmation, dans la ressource (URL) du point d'entrée correspond à un paramètre passé à la procédure WLangage associée au point d'entrée.
  • Un élément variable est représenté par un nom lors de la définition de l'adresse du point d'entrée dans l'éditeur. Dans le cas d'une composante variable de type programmation, ce nom doit être identique au nom du paramètre dans la procédure WLangage associé au point d'entrée.
    Au moment de l'exécution, la valeur passée dans la ressource (URL) sera récupérée et mise dans la variable. Ce nom est sensible à la casse. Il est donc très important d'utiliser le même nom dans la procédure et dans la ressource (ou inversement) sinon une erreur d'exécution est générée.
Il est possible de combiner plusieurs éléments statiques et plusieurs éléments variables. Par exemple:
  • "/Clients/{idClient}/Factures" pour récupérer les factures d'un client identifié par son idClient.
  • "/Fournisseurs/{idFour}/Produits/{RefProd}" pour récupérer le produit identifié par "RefProd" du fournisseur identifié par "idFour".

Pour modifier les paramètres communs, sous le volet "Webservice REST", dans le groupe "Options", cliquez sur "Description".
La fenêtre de description du Webservice REST (onglet "Composantes communes") permet d'avoir une partie de la ressource identique à tous les points d'entrée. Il n'est donc pas nécessaire de copier cette partie de la ressource systématiquement dans chaque point d'entrée. La modification est réalisée à un seul endroit.
Astuce : Il est possible d'utiliser la définition des paramètres communs pour gérer différentes versions du Webservice REST. Par exemple, un paramètre commun nommé "V1" peut être utilisé. Lors de la création d'une évolution ou d'une version 2 du Webservice, il suffit de changer "V1" en "V2" et ainsi tous les points d'entrée ont leur ressource (URL) modifiée.

Gestion des codes retour dans le code des procédures

Le code des procédures WLangage utilisées pour les Webservices REST doivent gérer des comptes-rendus indiquant si la fonction s'est exécutée correctement ou non.
Par convention, dans un Webservice REST, les comptes-rendus d'exécution sont retournés en utilisant les codes retour HTTP. Les codes retour HTTP sont classés par famille :
  • Les codes 2xx correspondent à une action réalisée avec succès.
  • Les codes 3xx correspondent à des erreurs de redirection.
  • Les codes 4xx correspondent à des erreurs du client (méthode HTTP incorrecte, format de donnée envoyé incorrect, etc.).
  • Les codes 5xx correspondent à des erreurs du serveur (erreur interne à la procédure WLangage, etc).
Le code de retour est renvoyé à l'aide de la fonction WebserviceEcritCodeHTTP.
Exemples de codes retour utilisés :
  • Demande de création d'un client via la méthode HTTP POST. Cette demande a réussi : il faut renvoyer le code 201.
  • Demande de suppression d'un client via la méthode DELETE. Cette demande a échoué à cause d'une erreur d'intégrité retournée par la base de données : il faut renvoyer le code 500 avec un message complémentaire d'explication.
  • Demande de recherche d'un produit en passant en paramètre une référence via la méthode GET. Cette demande a réussi : il faut renvoyer le code 200.
  • Demande de recherche d'un produit en passant en paramètre une référence via la méthode GET. Cette demande a échoué car la référence est inexistante : il faut renvoyer le code 404.
Version minimum requise
  • Version 22
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 16/01/2025

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