REST
REST: Representational State TransferL'envoi d'une requête de données à une API REST se fait généralement par le protocole HTTP.
À la réception de la requête, les API développées selon les principes REST (appelées API ou services web RESTful) peuvent renvoyer des messages dans différents formats : HTML, XML, texte brut et JSON.
Créé après SOAP, plus souple, plus rapide, plus simple.
Créé en 2000 par Roy Fielding, informaticien américain et cofondateur d'Apache.
Une API REST est une application qui expose des ressources via les URL avec lesquelles il est possible d'interagir.
L'API REST definit comment le client et le serveur communiquent pour gérer une base de données.
Ce n'est pas un protocole mais presque.
Les exemples sont innombrables et très courants: * Donne moi la liste des films de Tchéky Karyo sortis entre 1991 et 1996 * Donne moi la liste des apprtements à louer à Perpignan à moins de 500€/mois * Donne moi les articles à vendre de la catégorie "bougies" à plus de 5€
Exemple pour une boutique ecommerce
1er lien de l'API: voir les produits d'une catégorieLe client appelle l'URL https://boutique.domaine.fr/produits.php
en lui passant du JSON en GET (exemple AJAX/PHP)
{
"catégorie":"bougies"
"prixmax":25
}
Le serveur répond du JSON:
[
{
"nom":"Bougie en cide bleue",
"prix":5.95,
"stock":3
},
{
"nom":"Bougie en cire rouge",
"prix":4.32,
"stock":1
}
]
Le client formate en HTML la réponse.2e lien de l'API: passer une commande
Le client envoie du JSON au serveur sur un lien précis https://boutique.domaine.fr/commande.php
{
"nomproduit":"bougie en cire",
"quantité":1,
"livraison":"Mondial Relay"
}
Le serveur ajoute la commande à la base de données et répond du JSON différent si ça a fonctionné, ou erreurs:
{
"statut":"commande ajoutée"
}
ou
{
"erreur":"ce produit n'existe pas"
}
SOAP
SOAP: Simple Object Access ProtocolSOAP est un protocole standard initialement conçu pour que des applications développées avec différents langages sur différentes plateformes puissent communiquer.
Repose sur l'envoi de messages au format XML.