Voir cette page sous forme de diaporama.

Introduction aux web services

(ouvrage “Les web services” Ellipses, collection Technosup)

Un web service est une application informatique possédant une URI (Uniform Resource Identifier) hébergée par un serveur d'applications, cette application est composée de procédures dont l'exécution représente un service proposé à un autre programme (client) et qui est accessible sur Internet par l'utilisation de protocoles standards (http, html, xml, …).

Les web services utilisent une architecture client/serveur dans laquelle des clients (ordinateur, tél. portable, …) utilisent, via Internet, des procédures qui sont stockées sur un serveur d'applications.

Une API(Application Programming Interface) est un ensemble de règles et d'outils qui permet à deux applications ou systèmes de communiquer entre eux. Les APIs définissent comment des composants logiciels doivent interagir. Elles peuvent être utilisées pour diverses finalités, pas uniquement sur le web.

Les APIs peuvent être basées sur différents protocoles :

  • HTTP/HTTPS (REST, GraphQL, SOAP, etc.)
  • Bibliothèques locales (par exemple : des APIs dans un langage comme Python ou Java)
  • Communication bas-niveau (ex. APIs système pour accéder à des fonctionnalités du matériel ou du système d'exploitation).

Un web service est un type spécifique d'API qui est accessible via le réseau (généralement le web).

Les web services nécessitent un protocole réseau pour fonctionner, comme HTTP, SOAP ou REST.

Un web service fonctionne souvent en échangeant des données au format standardisé, comme XML ou JSON.

Toutes les APIs ne sont pas des web services, mais tous les web services sont des APIs.

  • Cas n° 1 : Supposons que vous disposiez d'un site marchand ayant un succès mondial. Les prix des produits proposés doivent être indiqués selon différentes devises. Comment tenir compte des derniers taux de change des différentes monnaies ?
  • Cas n°2 : Vous avez besoin de récupérer des adresses postales à partir d'un site Internet,vous devez contrôler la cohérence entre le code postal saisi et la ville indiquée. Comment effectuer ce contrôle ?
  • Cas n°3 : Vous travaillez à la réalisation d'un site Internet d'un parc d'attractions. L'activité du parc dépend fortement de la météo. Le maître d'ouvrage vous demande d'ajouter sur le site un encadré précisant la météo actuelle sur le parc. Comment faire ?
  • Du point de vue de l'utilisateur

L'utilisateur du web service (un programmeur) est sensible au temps de réponse, à la disponibilité du web service et à sa capacité d'accueil (nombre maximal de connexions autorisées sur le web service). Ces 3 critères détermineront la performance du web service.

  • Du point de vue du concepteur

Le concepteur concentrera son attention sur 3 autres points : l'exploitabilité, même en cas de changement de version, l'évolutivité, l'extensibilité si le nombre d'utilisateurs augmente.

Les architectures les plus courantes aujourd'hui sont REST et SOAP.

Utilisation du protocole HTTP et des méthodes

  • GET : pour récupérer des données à partir d'une requête
  • POST : pour envoyer des données au serveur de façon à créer une nouvelle ressource
  • PUT : pour envoyer des données aux serveur, le serveur peut retourner une réponse
  • DELETE : pour supprimer une ressource

Avec la réponse, le serveur retourne un code HTTP :

  • 2xx : succès (200 : ok, 201 : ressource créée)
  • 3xx : redirection, la ressource a déménagé
  • 4xx : erreur de la part du client (400 : erreur de requête, 401 : non autorisé, 404 : non trouvé)
  • 5xx : erreur au niveau du serveur

La réponse peut être un simple fichier texte, un fichier XML, ou un fichier JSON.

Note: exemple dossier D du dernier bts blanc (API REST en JAVA EE)

SOAP est un protocole de description de messages. Il nécessite l'utilisation du protocole WSDL (Web Server Description Langage) pour la description des services et du protocole HTTP pour le transport.

Un document SOAP est un document XML constitué d'une enveloppe comprenant un entête et un corps de message.

WSDL est utilisé pour la description du web service. Un documents WSDL est recensé dans un annuaire UDDI

SOAP est un protocole complet et puissant, mais plus complexe à utiliser.

Une clé API (ou API key en anglais) est un identifiant unique utilisé pour authentifier une application ou un utilisateur lorsqu'il interagit avec une API (Interface de Programmation d'Applications). Elle est souvent utilisée pour suivre l'utilisation d'une API, limiter l'accès, et éviter les abus.

  • Authentification : Elle permet à l'API de savoir qui fait la requête, garantissant que l'utilisateur a bien l'autorisation d'utiliser l'API.
  • Suivi et facturation : Les services API utilisent la clé pour suivre combien de requêtes un utilisateur effectue et, si l'API est payante ou limitée, pour facturer ou restreindre l'accès.
  • Sécurité : Elle permet de limiter l'accès aux données sensibles et de garantir que seuls les utilisateurs autorisés peuvent accéder à certains services ou ressources.
  • Inscription sur la plateforme : Vous devez généralement vous inscrire sur le site web du fournisseur de l'API (comme OpenWeatherMap, WeatherAPI, etc.).
  • Création d'un projet ou application : Certains services demandent de créer un projet ou une application (par exemple, dans un tableau de bord de développement) avant de vous attribuer une clé.
  • Génération de la clé : Une fois inscrit et connecté, vous pouvez générer une clé API depuis la console du fournisseur. Cela peut être sous forme d'une chaîne de caractères alphanumériques (par exemple, a3f6d18b9f4bcf2f8acb9c88ad89b9ed).

Exemple de clé API : 123456abcdef7890abcdef1234567890

https://academy.binance.com/fr/articles/what-is-an-api-key-and-how-to-use-it-securely

Une fois que vous avez votre clé, vous l'incluez généralement dans les requêtes que vous envoyez à l'API.

  • Confidentialité : Ne partagez pas vos clés API publiquement, car cela peut permettre à d'autres d'abuser de vos quotas ou services.
  • Limites : De nombreuses API imposent des limites d’utilisation, comme un nombre maximum de requêtes par minute, jour ou mois. Certaines offrent un quota gratuit, mais au-delà, vous devrez peut-être payer.

Créer un dossier webservice pour stocker le travail fait ici, créer un sous-dossier par mise en pratique (dossier monnaie, dossier codepostal …)

On souhaite créer une interface permettant d'indiquer le taux de change (la parité) d'une monnaie par rapport à une autre :

L'utilisateur choisit une monnaie d'origine, une monnaie de destination et clique sur Rechercher. Le système affiche alors la parité entre ces 2 monnaies.

  • 1. Réaliser le formulaire dans un programme nommé index.php. Les 2 listes déroulantes seront alimentées grâce au script listeMonnaies.inc.php disponible sur le Drive. Ce script sera à inclure ainsi :
 
<select id="ldrMonnaieO" name="ldrMonnaieO">  
 <optgroup label='Monnaie origine'> 
 <?php include("listeMonnaies.inc.php"); ?>  </optgroup> 
 </select>

Le contrôle graphique correspondant à la parité ne doit pas être accessible.

  • 2. Tester l'accès au service web : http://currencies.apps.grandtrunk.net/getlatest/EUR/USD Doit afficher une valeur approchant 1.0308003133632953, qui représente la valeur d'un euro en dollar.
  • 3. Écrire le script accesServiceWeb.inc.php. Ce script sera à inclure dans la page écrite précédemment. Il testera si les 2 monnaies ont été transmises au serveur web. Si les 2 monnaies sont renseignées, il fera appel à un service web pour récupérer la parité et l'affichera. L'accès au service web pourra s'effectuer ainsi :
$url = 'http://currencies.apps.grandtrunk.net/getlatest/'. $monnaieO . '/' .$monnaieD; 
$parite = file_get_contents($url);

$monnaieO représente la monnaie d'origine et $monnaieD la monnaie de destination.

D'autres options permettent d'obtenir des variantes de ce résultat, on peut notamment obtenir un historique, voir la documentation : http://currencies.apps.grandtrunk.net/

  • 1. Test du service web : https://apicarto.ign.fr/api/codes-postaux/communes/21200 , le résultat est le liste des villes(il y en a 13) correspondant au code postal 21200 au format JSON
  • 2. Faire l'interface permettant la saisie du code postal et d'afficher la liste des villes dans une liste déroulante (index.php) :
  • 3. Écrire le script accesServiceWeb.inc.php qui récupère le code postal saisi, fait appel au service web et constitue la liste déroulante à affichée. Consulter la documentation php de la fonction file_get_contents, notamment pour gérer le cas où le code postal n'existe pas.
  • 4. Modifier index.php, pour intégrer accesServiceWeb.inc.php et pour ré-afficher le code postal saisi, et afficher la liste déroulante constituée ou éventuellement un message d'erreur.
  • sio2/webservices.txt
  • Dernière modification : 2025/01/20 11:33
  • de dthevenot