(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 :
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.
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.
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
Avec la réponse, le serveur retourne un code HTTP :
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.
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.
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.
<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.
$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/