API :
Une API est un logiciel intermédiaire permettant à deux
applications de communiquer entre elles.
Une API est un ensemble de
définitions et de protocoles qui facilite la création et l'intégration de logiciels d'applications.
API est un acronyme anglais qui signifie « Application Programming
Interface », que l'on traduit par interface de programmation
d'application.
Egalement, une API nous permet
d’utiliser des ressources, des données ou des fonctionnalités, d’une
application depuis une autre application, en particulier les APIs sont
de plus en plus utilisées dans nos jours, car elles fonctionnent de la même
manière que le web. REST est imposé aujourd’hui comme un standard car c’est une
architecture simple à utiliser et facile à mettre en œuvre.
La majorité des logiciels utilisent les API : Facebook,
Twitter, Snapchat, Shazam, Netflix sont des logiciels qui mettent à disposition
des API et qui se basent sur les API d'autres services.
Le service de reconnaissance de musiques de Snapchat
repose sur l'API de Shazam.
Le service d’authentification –via Facebook- dans les
sites web repose sur l’API de Facebook.
Le service de prise de rendez-vous de votre salle de sport préférée repose sur L’API de Google Calendar.
Fonctionnement d’une API :
Pour qu’une API fonctionne, elle a besoin d’un serveur et un
client :
Un Serveur est un ordinateur très puissant
permettant d’exécuter une API. Egalement on peut l’appeler le fournisseur du service,
celui qui propose au client d’accéder à ses données ou services.
Un Client est un programme qui échange les données
avec un serveur à travers l’API, et C’est le consommateur des données fournit
par le serveur.
Prenez l’exemple de
chercher quelque chose sur Google, le client à travers une application vous
saisissez une adresse puis vous cliquez sur un bouton pour lancez la recherche.
Au moment du clic, un message contenant l’adresse saisie par le client est
envoyé à un ordinateur puissant (Serveur) qui va vous renvoyer des résultats
pertinents.
Les types d’API :
En effet, il généralement deux types d’API :
APIs Privés : Elles sont destinées à être consommées par les
membres d’une entreprise (Accès Interne).
APIs Publiques : Elles sont ouvertes au plus grand nombre, et
plus précisément, elles sont disponibles pour les développeurs externes, par
exemple, des apis pour obtenir des informations sur la météo.
L’architecture REST :
REST :
est un type d’architecture API qui signifie (REpresentational State Transfer), inventé par l’Américain Roy
Fielding, elles ont but à mettre en place des fonctions simples pour que nous
puissions accéder à des services web.
En fait, au
premier temps il y avait un protocole nommé SOAP, qui est un protocole
conçu pour que les applications développées avec différents langages et qui
existe sur déférentes plateformes puissent communiquer, il existe d’anciennes
générations reposent encore sur ce protocole - (Simple Object Access Protcol)
-, qui a des exigences spécifique comme l’envoi de messages au format XML.
REST est arrivé plus tardivement et
est souvent considéré comme une solution plus rapide pour des scénarios basés
sur le web.
Les APIs qui respectent les
contraintes de cette architecture, sont appelées API RESTful, et ces
contraintes sont :
Une architecture client-serveur : un client qui envoyer les requêtes, serveur
qui les traite.
Un serveur sans état : un protocole de communication qui jamais
stocke un état d’une session de communication entre deux requêtes successive.
Une mémoire cache : une mémoire qui enregistre temporairement des copies de donnée pour faciliter l’accès une autre fois.
Un système à couches : ces couches peuvent remplir des fonctionnalités, telles que le
partage des caches ou la sécurité, aussi elles peuvent jouer le rôle s’un
intermédiaire entre le client et le serveur.
Code à la demande : c’est un code qui est renvoyé par le serveur au client, pour lui informer que (200 : tous est bien, 404 : pas trouvé, 500 : une erreur au niveau de serveur…).
Et en fin, une interface uniforme qui contient
quatre aspects :
Identification des ressources : Les ressources doivent être identifiées et apparus
dans les requêtes.
Manipulation des ressources : le client doit recevoir des fichiers qui représentent
les ressources, ces représentations doivent contenir assez d’informations pour
que le client puisse faire les opérations CRUD.
Des messages auto-descriptifs : qui contiennent assez d’informations pour décrire la manière
dont le client doit traiter les informations.
Un hypermédia du changement des états applicatifs : après que le client accédé à une ressource, ce dernier doit être en mesure de découvrir toutes les autres actions disponibles par des hyperliens.
Manipulation des ressources avec les verbes http :
Les données
REST sont représentées dans ce qu’on appelle des ressources.
Une
ressource dans une base de données, peut être un client, une commande, un
article.
Une groupe
de ressource est nommée collection, on s’y référent avec la forme pluriel. Par
exemple, un client donnerait clients.
Le path
(chemin) que vous donnez à votre API, lui permet de savoir exactement où se
trouvent les données que vous voulez récupérer. Vous pouvez dire c’est comme le
fait de parcourir vos propres fichiers sur votre ordinateur.
Si vous
voulez récupérer les données, alors vous allez avoir besoin d’un outil pour
identifier les ressources que vous voulez. Et cet outil s’appelle URI (Uniform Resource Identifier).
Imaginez que vous êtes en train de créer une API pour un site web qui présenterait toutes les informations de Lucifer 😉, et que vous voulez listerait tous les personnages, alors L’URI doit être comme cela :
Et si vous voulez avoir la description d’un seul personnage ayant l’id 123, votre URI doit être :
L’API REST est un architecture qui repose sur le protocole
http, ça veut dire que L’API permet accéder à un service web à travers les 4
opérations, ou verbes (POST, GET ,PUT, DELETE) (CRUD).
Les données renvoyées par une API EST peuvent être sous
forme XML ou JSON, le contenu est le même mais la forme change.
En XML, chaque élément a une balise ouvrant et une balise
fermente.
Le JSON stocke les données sous un format de
clé-valeur avec comme clé le type de données, suivi de deux points :
suivi de la valeur de la donnée. Les données JSON sont entourées d'accolades {
}, et chaque paire clé-valeur est envoyée comme chaîne de caractères avec des
guillemets autour.
Bref :
Une
ressource est un objet de type nominal utilisé pour sauvegarder des données
dans une API.
Une
ressource peut contenir des informations supplémentaires.
Les
ressources sont regroupées en collection et sont nommées au pluriel.
Vous pouvez
accéder aux ressources dans les API avec des URI.
Les données
REST peuvent être en langage JSON ou XML, mais le JSON est le plus courant.
Commentaires
Enregistrer un commentaire