SlideShare a Scribd company logo
1 of 15
Fondamentaux d’une
API REST
M. Abdoulaye DIENG Avril 2020
Objectif général
Connaître les fondamentaux d’une API REST
Objectifs spécifiques
• Savoir définir une API
• Connaître l’architecture REST
• Connaître les contraintes du REST
• Connaître la structure d’une requêtes HTTP
• Connaître les caractéristiques d’une ressources
• Se servir des méthodes HTTP
• Connaître la structure d’une réponses HTTP
• Connaître les codes HTTP
Sommaire
1) API
2) REST
3) Contraintes REST
4) Requêtes HTTP
5) Ressources
6) Méthodes
7) Réponses
8) Codes HTTP
API
• Pb : après avoir réalisé une e-boutique, un développeur
souhaite ajouter la possibilité de payer en ligne
• Sol : intégrer un système extérieur comme Paypal ou
PayDunya
• API (Application Programming Interface) : ensemble
normalisé de classes, de méthodes, de fonctions et
de constantes qui sert de façade par laquelle un logiciel offre
des services à d'autres logiciels (Wikipedia nov. 2019)
• Exemples
PayPal API, PayDunya API, Google Maps API, Twitter API,
Youtube API, Facebook API
REST
• REST : Representational State Transfer
• Architecture orientée ressources pour les systèmes
distribués
• Créé par Roy Fielding, auteur de la spécification HTTP,
développeur du serveur Web Apache, …
• L’architecture REST utilise les spécifications originelles
du protocole HTTP, plutôt que de réinventer une surcouche
(comme le font SOAP ou XML-RPC par exemple).
Contraintes REST
• Client-Server
séparation de rôles entre client (application web ou
application mobile) et serveur (API REST)
• Stateless Server
oLe serveur doit être capable de comprendre chaque
requête sans faire appel à des données de session
oLe client doit conserver les informations sur son état
(sous forme de token par exemple) et les joindre à
chaque requête
• Cache
oToute réponse peut être notées comme « cachables »
grâce aux en-têtes HTTP correspondantes
oCe qui permettra à un serveur proxy ou à un client de
renvoyer une même ressource
Contraintes REST
• Uniform interface
oIdentification des ressources : URI
oReprésentation des ressources : JSON et XML par exemple
oauto-description des réponses avec l’URI sollicitée, la
méthode d'appel, le code HTTP et le format des données
oHypermedia : la réponse décrit la manière de naviguer à
travers le service pour effectuer d’autres requêtes
• Layered System
Possibilité d’ajouter des couches intermédiaires (proxy
server, firewall, CDN, etc …) transparentes au client
• Code-on-Demand (optionnelle)
le client peut demander au serveur du code (applet java ou
script javaScript) à exécuter
Requêtes HTTP
• Une requête HTTP émane d'un client (tout logiciel ayant la
capacité de forger une requête).
• Une requête est constituée des éléments suivants :
oLa première ligne (request line) doit contenir :
 la méthode HTTP (GET, POST, PUT, DELETE , …)
 l'URI : contenant la ressource (exemple : /lutteurs/1 )
 la version du protocole (exemple : HTTP/1.1 )
oLes entêtes (headers), une entête par ligne, chaque ligne
finie par le caractère spécial "retour à la ligne" (CRLF)
oLe contenu de la requête (body), doit être séparé de deux
caractères spéciaux "retour à la ligne"
Les requêtes - exemple
Exemple de requête POST :
POST /lutteurs HTTP/1.1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) …
Content-Type: application/x-www-form-urlencoded
Content-Length: 30
id=1&pseudo=Modou Lo&poids=110
Ressources
• Une ressource est un objet auquel les utilisateurs d’une API
peuvent vouloir accéder.
Ex : utilisateur, produit, article, lutteur
• Collection = ensemble de ressources du même type
Ex : utilisateurs, produits, articles, commentaires, lutteurs
• URI : identifiant d’une ressource ou d’une collection
o Ex 1 : /articles identifie la collection « articles »
o Ex 2 : /articles/1 identifie l’article numéro 1
oEx 3 : /articles/1/commentaires identifie les
commentaires sur l’article numéro 1
• Principales représentation d’une ressource : JSON et XML
Exemple en JSON :
"lutteurs": [
{ "id": 1, "pseudo": "Modou Lo", "poids": 110 },
{ "id": 2, "pseudo": "Yawou Diaal", "poids": 70 }
]
Méthodes
• Méthode : action que l'on souhaite réaliser sur la ressource
demandée
• Quelques méthodes (ou verbes) HTTP
oGET : récupère une ou +sieurs ressource(s)
oPOST : crée une ressource
oPUT : remplace entièrement ou ajoute une ressource
oPATCH : remplace partiellement une ressource
oDELETE : supprime une ressource
oOPTIONS : obtient la liste des actions possibles pour
une ressource donnée
Réponses HTTP
• Une réponse HTTP émane d'un serveur (tout logiciel ayant
la capacité de forger une réponse HTTP)
• Une réponse est constituée des éléments suivants :
oLa première ligne (status line) doit contenir :
 la version du protocole utilisée
 le code d’état (à voir)
 l'équivalent textuel du code d’état
oLes entêtes (headers), une entête par ligne, chaque ligne
finie par le caractère spécial "retour à la ligne" (CRLF)
oLe contenu de la réponse (body), doit être séparé de
deux caractères spéciaux "retour à la ligne"
Réponses HTTP - exemple
HTTP/1.1 200 OK
Date: Sat, 09 Nov 2019 10:40:28 GMT
Content-Type: application/json
{
"id": 1, "pseudo": "Modou Lo", "poids": 110
}
Codes HTTP
https://www.illustradata.com/api-rest/
Code d’état : permet de déterminer le résultat d'une requête ou
d'indiquer une erreur au client

More Related Content

What's hot

Workshop Spring - Session 1 - L'offre Spring et les bases
Workshop Spring  - Session 1 - L'offre Spring et les basesWorkshop Spring  - Session 1 - L'offre Spring et les bases
Workshop Spring - Session 1 - L'offre Spring et les basesAntoine Rey
 
Théorie de l’apprentissage et SVM : présentation rapide et premières idées da...
Théorie de l’apprentissage et SVM : présentation rapide et premières idées da...Théorie de l’apprentissage et SVM : présentation rapide et premières idées da...
Théorie de l’apprentissage et SVM : présentation rapide et premières idées da...tuxette
 
Android-Tp5 : web services
Android-Tp5 : web servicesAndroid-Tp5 : web services
Android-Tp5 : web servicesLilia Sfaxi
 
Les architectures client serveur
Les architectures client serveurLes architectures client serveur
Les architectures client serveurAmeni Ouertani
 
SSH - Secure Shell
SSH - Secure ShellSSH - Secure Shell
SSH - Secure ShellSouhaib El
 
Support du cours : Programmation Web 2
Support du cours : Programmation Web 2Support du cours : Programmation Web 2
Support du cours : Programmation Web 2Faycel Chaoua
 
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...ENSET, Université Hassan II Casablanca
 
Formation JAVA/J2EE
Formation JAVA/J2EEFormation JAVA/J2EE
Formation JAVA/J2EEInes Ouaz
 
Programmation orientée objet avancée
Programmation orientée objet avancéeProgrammation orientée objet avancée
Programmation orientée objet avancéeMahfoud EL HOUDAIGUI
 

What's hot (20)

Soa & services web
Soa & services webSoa & services web
Soa & services web
 
Workshop Spring - Session 1 - L'offre Spring et les bases
Workshop Spring  - Session 1 - L'offre Spring et les basesWorkshop Spring  - Session 1 - L'offre Spring et les bases
Workshop Spring - Session 1 - L'offre Spring et les bases
 
Théorie de l’apprentissage et SVM : présentation rapide et premières idées da...
Théorie de l’apprentissage et SVM : présentation rapide et premières idées da...Théorie de l’apprentissage et SVM : présentation rapide et premières idées da...
Théorie de l’apprentissage et SVM : présentation rapide et premières idées da...
 
Android-Tp5 : web services
Android-Tp5 : web servicesAndroid-Tp5 : web services
Android-Tp5 : web services
 
La méthode z
La méthode zLa méthode z
La méthode z
 
Les architectures client serveur
Les architectures client serveurLes architectures client serveur
Les architectures client serveur
 
Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1 Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1
 
Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 
spring-boot-fr.pdf
spring-boot-fr.pdfspring-boot-fr.pdf
spring-boot-fr.pdf
 
SSH - Secure Shell
SSH - Secure ShellSSH - Secure Shell
SSH - Secure Shell
 
Introduction to spring boot
Introduction to spring bootIntroduction to spring boot
Introduction to spring boot
 
Support du cours : Programmation Web 2
Support du cours : Programmation Web 2Support du cours : Programmation Web 2
Support du cours : Programmation Web 2
 
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
 
Formation JAVA/J2EE
Formation JAVA/J2EEFormation JAVA/J2EE
Formation JAVA/J2EE
 
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka StreamsTraitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
 
An Introduction To REST API
An Introduction To REST APIAn Introduction To REST API
An Introduction To REST API
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
Cours java
Cours javaCours java
Cours java
 
Programmation orientée objet avancée
Programmation orientée objet avancéeProgrammation orientée objet avancée
Programmation orientée objet avancée
 

Similar to Fondamentaux d’une API REST

Controller_Rest.pptx
Controller_Rest.pptxController_Rest.pptx
Controller_Rest.pptxManalAg
 
Comprendre, utiliser et créer une API
Comprendre, utiliser et créer une APIComprendre, utiliser et créer une API
Comprendre, utiliser et créer une APIOlivia Reaney
 
Programmation_JEE_Version_imprimable.pdf
Programmation_JEE_Version_imprimable.pdfProgrammation_JEE_Version_imprimable.pdf
Programmation_JEE_Version_imprimable.pdfngombeemmanuel
 
JEE_chapitre 1.pdf
JEE_chapitre 1.pdfJEE_chapitre 1.pdf
JEE_chapitre 1.pdfiyadamri
 
Introduction au web cours.pdf
Introduction au web cours.pdfIntroduction au web cours.pdf
Introduction au web cours.pdfElomyakobi
 
Formation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPkemenaran
 
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbhindguendouz2000
 
RESTful API - Retour d'expérience
RESTful API - Retour d'expérienceRESTful API - Retour d'expérience
RESTful API - Retour d'expérienceChristophe Laprun
 
Introduction à ERRest
Introduction à ERRestIntroduction à ERRest
Introduction à ERRestWO Community
 
Introduction dans la Programmation Web Course 1
Introduction dans la Programmation Web Course 1Introduction dans la Programmation Web Course 1
Introduction dans la Programmation Web Course 1Vlad Posea
 
Publication des données publiques (Open Data), WCF Data Services, OData
Publication des données publiques (Open Data), WCF Data Services, ODataPublication des données publiques (Open Data), WCF Data Services, OData
Publication des données publiques (Open Data), WCF Data Services, ODataMicrosoft Ideas
 
Développement d'un moteur de recherche avec Zend Search
Développement d'un moteur de recherche avec Zend SearchDéveloppement d'un moteur de recherche avec Zend Search
Développement d'un moteur de recherche avec Zend SearchRobert Viseur
 
TEI HAL - import SWORD
TEI HAL - import SWORDTEI HAL - import SWORD
TEI HAL - import SWORDOAccsd
 
De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)Restlet
 

Similar to Fondamentaux d’une API REST (20)

Controller_Rest.pptx
Controller_Rest.pptxController_Rest.pptx
Controller_Rest.pptx
 
Introduction à Laravel
Introduction à LaravelIntroduction à Laravel
Introduction à Laravel
 
Comprendre, utiliser et créer une API
Comprendre, utiliser et créer une APIComprendre, utiliser et créer une API
Comprendre, utiliser et créer une API
 
Programmation_JEE_Version_imprimable.pdf
Programmation_JEE_Version_imprimable.pdfProgrammation_JEE_Version_imprimable.pdf
Programmation_JEE_Version_imprimable.pdf
 
JEE_chapitre 1.pdf
JEE_chapitre 1.pdfJEE_chapitre 1.pdf
JEE_chapitre 1.pdf
 
7 rest
7 rest7 rest
7 rest
 
Introduction au web cours.pdf
Introduction au web cours.pdfIntroduction au web cours.pdf
Introduction au web cours.pdf
 
Formation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHP
 
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
0570-les-services-web.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
 
spring.pdf
spring.pdfspring.pdf
spring.pdf
 
RESTful API - Retour d'expérience
RESTful API - Retour d'expérienceRESTful API - Retour d'expérience
RESTful API - Retour d'expérience
 
Services rest & jersey
Services rest & jerseyServices rest & jersey
Services rest & jersey
 
Introduction à ERRest
Introduction à ERRestIntroduction à ERRest
Introduction à ERRest
 
Java Entreprise Edition
Java Entreprise EditionJava Entreprise Edition
Java Entreprise Edition
 
Introduction dans la Programmation Web Course 1
Introduction dans la Programmation Web Course 1Introduction dans la Programmation Web Course 1
Introduction dans la Programmation Web Course 1
 
Publication des données publiques (Open Data), WCF Data Services, OData
Publication des données publiques (Open Data), WCF Data Services, ODataPublication des données publiques (Open Data), WCF Data Services, OData
Publication des données publiques (Open Data), WCF Data Services, OData
 
Développement d'un moteur de recherche avec Zend Search
Développement d'un moteur de recherche avec Zend SearchDéveloppement d'un moteur de recherche avec Zend Search
Développement d'un moteur de recherche avec Zend Search
 
TEI HAL - import SWORD
TEI HAL - import SWORDTEI HAL - import SWORD
TEI HAL - import SWORD
 
De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)
 
technologie web
technologie webtechnologie web
technologie web
 

More from Abdoulaye Dieng

Fondamentaux du Référencement naturel
Fondamentaux du Référencement naturelFondamentaux du Référencement naturel
Fondamentaux du Référencement naturelAbdoulaye Dieng
 
Panorama des Technologies mobiles
Panorama des Technologies mobilesPanorama des Technologies mobiles
Panorama des Technologies mobilesAbdoulaye Dieng
 
Prise en main de WordPress
Prise en main de WordPressPrise en main de WordPress
Prise en main de WordPressAbdoulaye Dieng
 
Introduction à JavaScript
Introduction à JavaScriptIntroduction à JavaScript
Introduction à JavaScriptAbdoulaye Dieng
 
Introduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonIntroduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonAbdoulaye Dieng
 
Introduction à React JS
Introduction à React JSIntroduction à React JS
Introduction à React JSAbdoulaye Dieng
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmiqueAbdoulaye Dieng
 
Requêtes HTTP synchrones et asynchrones
Requêtes HTTPsynchrones et asynchronesRequêtes HTTPsynchrones et asynchrones
Requêtes HTTP synchrones et asynchronesAbdoulaye Dieng
 
Introduction à JavaScript
Introduction à JavaScriptIntroduction à JavaScript
Introduction à JavaScriptAbdoulaye Dieng
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmiqueAbdoulaye Dieng
 
Introduction à AngularJS
Introduction à AngularJSIntroduction à AngularJS
Introduction à AngularJSAbdoulaye Dieng
 

More from Abdoulaye Dieng (20)

Introduction à React
Introduction à ReactIntroduction à React
Introduction à React
 
Fondamentaux du Référencement naturel
Fondamentaux du Référencement naturelFondamentaux du Référencement naturel
Fondamentaux du Référencement naturel
 
Introduction à Symfony
Introduction à SymfonyIntroduction à Symfony
Introduction à Symfony
 
Panorama des Technologies mobiles
Panorama des Technologies mobilesPanorama des Technologies mobiles
Panorama des Technologies mobiles
 
Prise en main de WordPress
Prise en main de WordPressPrise en main de WordPress
Prise en main de WordPress
 
Initiation à Bootstrap
Initiation à BootstrapInitiation à Bootstrap
Initiation à Bootstrap
 
Introduction à Angular
Introduction à AngularIntroduction à Angular
Introduction à Angular
 
Introduction à JavaScript
Introduction à JavaScriptIntroduction à JavaScript
Introduction à JavaScript
 
Introduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonIntroduction à l’orienté objet en Python
Introduction à l’orienté objet en Python
 
Introduction à Python
Introduction à PythonIntroduction à Python
Introduction à Python
 
Introduction à React JS
Introduction à React JSIntroduction à React JS
Introduction à React JS
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmique
 
Introduction à Symfony
Introduction à SymfonyIntroduction à Symfony
Introduction à Symfony
 
Initiation à Bootstrap
Initiation à BootstrapInitiation à Bootstrap
Initiation à Bootstrap
 
Requêtes HTTP synchrones et asynchrones
Requêtes HTTPsynchrones et asynchronesRequêtes HTTPsynchrones et asynchrones
Requêtes HTTP synchrones et asynchrones
 
Introduction à jQuery
Introduction à jQueryIntroduction à jQuery
Introduction à jQuery
 
Introduction à JavaScript
Introduction à JavaScriptIntroduction à JavaScript
Introduction à JavaScript
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmique
 
Introduction à HTML 5
Introduction à HTML 5Introduction à HTML 5
Introduction à HTML 5
 
Introduction à AngularJS
Introduction à AngularJSIntroduction à AngularJS
Introduction à AngularJS
 

Fondamentaux d’une API REST

  • 1. Fondamentaux d’une API REST M. Abdoulaye DIENG Avril 2020
  • 2. Objectif général Connaître les fondamentaux d’une API REST
  • 3. Objectifs spécifiques • Savoir définir une API • Connaître l’architecture REST • Connaître les contraintes du REST • Connaître la structure d’une requêtes HTTP • Connaître les caractéristiques d’une ressources • Se servir des méthodes HTTP • Connaître la structure d’une réponses HTTP • Connaître les codes HTTP
  • 4. Sommaire 1) API 2) REST 3) Contraintes REST 4) Requêtes HTTP 5) Ressources 6) Méthodes 7) Réponses 8) Codes HTTP
  • 5. API • Pb : après avoir réalisé une e-boutique, un développeur souhaite ajouter la possibilité de payer en ligne • Sol : intégrer un système extérieur comme Paypal ou PayDunya • API (Application Programming Interface) : ensemble normalisé de classes, de méthodes, de fonctions et de constantes qui sert de façade par laquelle un logiciel offre des services à d'autres logiciels (Wikipedia nov. 2019) • Exemples PayPal API, PayDunya API, Google Maps API, Twitter API, Youtube API, Facebook API
  • 6. REST • REST : Representational State Transfer • Architecture orientée ressources pour les systèmes distribués • Créé par Roy Fielding, auteur de la spécification HTTP, développeur du serveur Web Apache, … • L’architecture REST utilise les spécifications originelles du protocole HTTP, plutôt que de réinventer une surcouche (comme le font SOAP ou XML-RPC par exemple).
  • 7. Contraintes REST • Client-Server séparation de rôles entre client (application web ou application mobile) et serveur (API REST) • Stateless Server oLe serveur doit être capable de comprendre chaque requête sans faire appel à des données de session oLe client doit conserver les informations sur son état (sous forme de token par exemple) et les joindre à chaque requête • Cache oToute réponse peut être notées comme « cachables » grâce aux en-têtes HTTP correspondantes oCe qui permettra à un serveur proxy ou à un client de renvoyer une même ressource
  • 8. Contraintes REST • Uniform interface oIdentification des ressources : URI oReprésentation des ressources : JSON et XML par exemple oauto-description des réponses avec l’URI sollicitée, la méthode d'appel, le code HTTP et le format des données oHypermedia : la réponse décrit la manière de naviguer à travers le service pour effectuer d’autres requêtes • Layered System Possibilité d’ajouter des couches intermédiaires (proxy server, firewall, CDN, etc …) transparentes au client • Code-on-Demand (optionnelle) le client peut demander au serveur du code (applet java ou script javaScript) à exécuter
  • 9. Requêtes HTTP • Une requête HTTP émane d'un client (tout logiciel ayant la capacité de forger une requête). • Une requête est constituée des éléments suivants : oLa première ligne (request line) doit contenir :  la méthode HTTP (GET, POST, PUT, DELETE , …)  l'URI : contenant la ressource (exemple : /lutteurs/1 )  la version du protocole (exemple : HTTP/1.1 ) oLes entêtes (headers), une entête par ligne, chaque ligne finie par le caractère spécial "retour à la ligne" (CRLF) oLe contenu de la requête (body), doit être séparé de deux caractères spéciaux "retour à la ligne"
  • 10. Les requêtes - exemple Exemple de requête POST : POST /lutteurs HTTP/1.1 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) … Content-Type: application/x-www-form-urlencoded Content-Length: 30 id=1&pseudo=Modou Lo&poids=110
  • 11. Ressources • Une ressource est un objet auquel les utilisateurs d’une API peuvent vouloir accéder. Ex : utilisateur, produit, article, lutteur • Collection = ensemble de ressources du même type Ex : utilisateurs, produits, articles, commentaires, lutteurs • URI : identifiant d’une ressource ou d’une collection o Ex 1 : /articles identifie la collection « articles » o Ex 2 : /articles/1 identifie l’article numéro 1 oEx 3 : /articles/1/commentaires identifie les commentaires sur l’article numéro 1 • Principales représentation d’une ressource : JSON et XML Exemple en JSON : "lutteurs": [ { "id": 1, "pseudo": "Modou Lo", "poids": 110 }, { "id": 2, "pseudo": "Yawou Diaal", "poids": 70 } ]
  • 12. Méthodes • Méthode : action que l'on souhaite réaliser sur la ressource demandée • Quelques méthodes (ou verbes) HTTP oGET : récupère une ou +sieurs ressource(s) oPOST : crée une ressource oPUT : remplace entièrement ou ajoute une ressource oPATCH : remplace partiellement une ressource oDELETE : supprime une ressource oOPTIONS : obtient la liste des actions possibles pour une ressource donnée
  • 13. Réponses HTTP • Une réponse HTTP émane d'un serveur (tout logiciel ayant la capacité de forger une réponse HTTP) • Une réponse est constituée des éléments suivants : oLa première ligne (status line) doit contenir :  la version du protocole utilisée  le code d’état (à voir)  l'équivalent textuel du code d’état oLes entêtes (headers), une entête par ligne, chaque ligne finie par le caractère spécial "retour à la ligne" (CRLF) oLe contenu de la réponse (body), doit être séparé de deux caractères spéciaux "retour à la ligne"
  • 14. Réponses HTTP - exemple HTTP/1.1 200 OK Date: Sat, 09 Nov 2019 10:40:28 GMT Content-Type: application/json { "id": 1, "pseudo": "Modou Lo", "poids": 110 }
  • 15. Codes HTTP https://www.illustradata.com/api-rest/ Code d’état : permet de déterminer le résultat d'une requête ou d'indiquer une erreur au client

Editor's Notes

  1. Exemple API Cnx via GG, FB ou TW ou LINKed
  2. https://www.scriptol.fr/programmation/rest.php SOAP : Simple Object Access Protocol Orienté ressource : les actions sur les ressources sont les mérhodes ou verbes HTTP
  3. https://www.supinfo.com/articles/single/1099-conception-une-api-rest-theorie
  4. https://www.supinfo.com/articles/single/1099-conception-une-api-rest-theorie
  5. https://openclassrooms.com/fr/courses/4087036-construisez-une-api-rest-avec-symfony/4280556-une-architecture-pas-un-protocole
  6. https://openclassrooms.com/fr/courses/4087036-construisez-une-api-rest-avec-symfony/4280556-une-architecture-pas-un-protocole
  7. URI : Uniform Resource Identifier
  8. https://openclassrooms.com/fr/courses/4087036-construisez-une-api-rest-avec-symfony/4280556-une-architecture-pas-un-protocole code d’état : permet de déterminer le résultat d'une requête ou d'indiquer une erreur au client
  9. https://openclassrooms.com/fr/courses/4087036-construisez-une-api-rest-avec-symfony/4280556-une-architecture-pas-un-protocole
  10. 202 Accepted La requête a été reçue mais n'a pas encore été traitée.  400 Bad Request le serveur n'a pas pu comprendre la requête à cause d'une syntaxe invalide 503 Service Unavailable Le serveur n'est pas prêt pour traiter la requête. Les causes les plus communes sont que le serveur est éteint pour maintenance ou qu'il est surchargé.