Comprendre enfin les APIs
Harouna Diallo - Membre de DevsCom et Lead Tech chez MIS TECH
Presentation DevsCom
Agenda
Application Programming Interface
Interface
Programming
Application
Application Programming Interface
Application
Application Programming Interface
Interface
Application Programming Interface
Programme
Not use for a human
Les APIs exposent quelques choses
API
API
API
Programme
Les développeurs exposent des APIs (Services) et les programmes consomment ses APIs
Alors des APIs ?
Quelques types d’APIs
Programme
API GOOGLE MAPS JS
Pourquoi les API Rest sont une innovation ?
Historique : Application programming Interface (API)
Remote procedure call - RPC 1980’
Historique : Application programming Interface (API)
Simple Object Access Protocol - SOAP
Historique : Application programming Interface (API)
Representational State Transfer - REST
Application programming Interface (API) - REST
Historique : Application programming Interface (API) - REST
Representational State Transfer - REST
Historique : Application programming Interface (API) - REST
Representational State Transfer - REST
Historique : Application programming Interface (API) - REST
Representational State Transfer - REST
Application programming Interface (API)
Année 60’ - Librairie
Année 80’-90’ - Remote Access (appel Reseau)
Année 00’ - Representational State Transfer (REST - Roy Fielding)
Année 10’ - Public APIs, API platform…
Application programming Interface (API) - REST
Roy Fielding a defini 6 contrainte à respecter “Contrainte d’architecture”
Application programming Interface (API) - REST
Client - Server
Contraite d’architecture 1/6
Application programming Interface (API) - REST
Stateless (sans état)
Contraite d’architecture 2/6
Application programming Interface (API) - REST
Cache (mise en cache)
Contraite d’architecture 3/6
Application programming Interface (API) - REST
Contraite d’architecture 4/6
Application programming Interface (API) - REST
Layer (en couche)
Une abstraction aux données
Contraite d’architecture 5/6
Application programming Interface (API) - REST
Code-on-demande (optionel)
Contraite d’architecture 6/6
Application programming Interface (API) - REST
Code HTTP
Application programming Interface (API) - REST
Verb HTTP
Application programming Interface (API) - REST
Bonne pratique HTTP REST
Application programming Interface (API) - REST
Bonne pratique en 5 régles
Application programming Interface (API) - REST
Bonne pratique : URI comme identifiant des ressources
http://api.example.com/books
http://api.example.com/books/34
http://api.example.com/books/34/comments
http://api.example.com/books/34/comments/27
Application programming Interface (API) - REST
Bonne pratique : Les verbes HTTP comme identifiant des ressources
Create ⇒ POST
Read ⇒ GET
Update ⇒ PUT
Delete ⇒ DELETE
Application programming Interface (API) - REST
Bonne pratique : Les réponses comme un identifiant de ressources
Application programming Interface (API) - REST
Bonne pratique : Les paramètres comme jeton d’authentification
https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap
Le cache
Cache-Control | Explication |
max-age=86400 | La réponse peut être mise en cache par le navigateur et tout cache intermédiaire (elle est donc « publique ») pendant un maximum de 1 jour (60 secondes x 60 minutes x 24 heures) |
no-store | La réponse n'est pas autorisée à être mise en cache et doit être récupérée en intégralité à chaque requête. |
no-cache | Cela vous permet de spécifier que la requête suivante pour le même contenu devra obligatoirement être validée par le serveur. Ceci rend l'entrée dans le cache directement périmée |
Etc. |
API REST: dilemme
GraphQL vs REST
GraphQL : Pourquoi ?
Le cache avec GraphQL
Quelles technologies choisir ?
SOAP
REST
GraphQL
gRPC
Quelles technologies choisir ?
SOAP
REST
GraphQL
gRPC
Est si la solution était ailleur ?
3 couches
Client
API
Database
Une architecture à 3 couches
2 couches
Client
API (chema, view…)
Database
Une architecture à 2 couches
Application programming Interface (API)
Application programming Interface (API)
Application programming Interface (API)
Application programming Interface (API)
Structure d’une URL
Structure d’une requete HTTP
Couche API
Conclusion
#DevsCom
Question ?