
Les webservices SOAP sont encore très utilisés dans certains contextes, notamment en entreprise, pour leur structure rigoureuse et leur compatibilité avec des systèmes variés. Cependant, ajouter une clé d’API en-tête HTTP dans un Webservice SOAP n’est pas évident, notamment en comparaison avec les API REST où la gestion des en-têtes est plus directe.
Dans cet article, je vous propose un guide détaillé, en trois étapes, pour mettre en place cette fonctionnalité dans un environnement WinDev, WebDev ou WinDev Mobile de PCSOFT. Vous apprendrez à la fois à :
- Créer un Webservice SOAP qui lit et valide une clé API passée dans l’en-tête HTTP.
- Consommer ce Webservice en configurant correctement les en-têtes HTTP.
Étape 1 : Créer un Webservice SOAP qui lit et valide une clé API
Lorsque vous développez un Webservice SOAP dans WebDev, il est possible d’accéder aux en-têtes HTTP grâce à la fonction WebserviceLitEntêteHTTP. Voici les étapes principales :
- Lire la clé API dans l’en-tête HTTP : utilisez la fonction WebserviceLitEntêteHTTP pour lire la clé API transmise en en-tête.
- Déclencher une exception : si la clé d’API est absente ou incorrecte, le Webservice doit renvoyer une réponse claire et explicite. Utilisez ExceptionDéclenche avec un message d’erreur adapté.
sCleApiRecue est une chaîne = WebserviceLitEntêteHTTP(“apikey”)
SI sCleApiRecue <> sCleAttendue ALORS
ExceptionDéclenche(exceptionErreur,”Unauthorized”)
FIN
Étape 2 : Configurer l’en-tête HTTP côté consommateur (projet client)
Pour transmettre une clé d’API à votre Webservice SOAP, il est nécessaire d’utiliser une variable de type wsRequête. Cette variable permet de configurer les en-têtes HTTP pour chaque appel au Webservice.
Créer une variable wsRequête en lui indiquant une valeur dans la propritété EntêteHTTP.
Voici un exemple de configuration :
wsSoapEnTete est un wsRequête
wsSoapEnTete.EntêteHTTP[“apikey”] = “MaCléAPI123”
Étape 3 : Modifier l’appel aux procédures du Webservice
Voici une subtilité importante lorsque vous ajoutez un en-tête HTTP à un appel SOAP dans un projet client. Si votre procédure SOAP reçoit déjà plusieurs paramètres, vous devrez modifier légèrement la syntaxe pour inclure la variable wsRequête qui doit être utilisée en 1er paramètre de l’appel à la procédure.
- Appel classique :
- Appel avec en-tête HTTP :
Conclusion
Ajouter une clé API en en-tête dans un Webservice SOAP développé avec WinDev ou WebDev de PCSOFT n’est pas aussi évident qu’en REST, mais cela reste tout à fait réalisable avec les bonnes pratiques. En résumé :
- Du côté serveur, utilisez WebserviceLitEntêteHTTP pour lire et valider la clé API.
- Du côté client, configurez une variable wsRequête pour transmettre l’en-tête.
- Adaptez les appels aux procédures pour inclure la gestion des en-têtes.