SlideShare une entreprise Scribd logo
APPLICATION
PROGRAMMING
INTERFACES
COMPRENDRE, UTILISER
ET CRÉER
SOMMAIRE
• Carte d’identité d’une API
• Utilisation
• Consommateur
• Producteur
• Marché
• Catégories d’API
• Données véhiculées
• SOAP et REST
• Exemples
• Des idées qui émergent?
• Pour les curieux…
CARTE D’IDENTITÉ D’UNE API
• Quoi ? Ensemble de fonctions exposées par un programme tiers pour accéder à tout ou
partie de ses fonctionnalités
• Qui ? Par des développeurs pour des développeurs
• Comment ? N’importe quel langage de programmation !
• Une API ≡ plusieurs implémentations
• Par abus de langage, les API couramment utilisées et entendues comme telles sont des accès à des
web services
• Où et quand ? …
POURQUOI ?
POURQUOI ?
• “I choose a lazy person to do a hard job.
Because a lazy person will find an easy way to
do it.” ― Bill Gates
AVANT… MAINTENANT APRES?
???
S’adapter aux évolutions technologiques
Contrat tacite producteur-consommateur :
Qu’autorise-t-on à faire et comment ?
UTILISATION : CÔTÉ CONSOMMATEUR
PROS
• Utilisation de fonctionnalités même si expertise et/ou
ressources manquantes en interne
• Standardisation des API garantit des consensus
d’utilisation (ex. : standards HTTP, modèle REST, etc.)
→ grande communauté et possibilité d’entraide
• Mise en pratique rapide avant rachat ou recherche en
interne sur d’autres pistes
CONS
• Dépendance très forte au producteur → maintenance ±
accrue lors d’évolutions (modification des algorithmes,
dépréciation de fonctionnalités, voire cessation de
services)
• Problèmes de compatibilité entre API → boîte noire avec
les dépendances importées
UTILISATION :
CÔTÉ
PRODUCTEUR
• Industrialisation et monétisation des algorithmes et/ou des données
• Inclusion de nouveaux acteurs au sein de son marché (recrutement
des utilisateurs, intégration de nouveaux usages via feedbacks…)
• Maîtrise des données échangées : sécurisation des données plutôt que
d’un monolithe applicatif
• Pas de présupposé sur les technologies finales employées : support et
maintenance réduits aux fonctionnalités
• Implémentation respectueuse des standards (guidelines
préexistantes...) → Gain de temps lors des spécifications
• Découpage en micro-services : concentration sur cœur de
métier/fonctionnalité, même en interne
Catégories d’API
API de système d’exploitation API de langage de programmation
API d’infrastructure API ou service web
SPÉCIFICITÉS DES API POUR DEVICES « MOBILES »
• Prendre en compte les utilisateurs finaux! → ATAWAD
• Besoin d’instantané (AnyTime,AnyWhere)
• Multiplicité des interactions entre applications sur un ou entre appareil(s) (AnyDevice)
• Architecture client-serveur, les clients étant les appareils de X marques
• Optimisation des transmissions de données (requêtes, temps de traitement, etc.)
• Atomisation de l’information
• « Technology-agnostism »
MARCHÉ :
UNE EXPLOSION DU
TERME “API” EN
MARKETING
• Concentration sur un service fourni plutôt qu’un
produit – pas de dépendance matérielle!
• Réseaux facilement accessibles : mises à jour en temps
réel, possibilité de traitements asynchrones…
• Régulation des requêtes, meilleur management côté
serveur
• Business model ≡ licences et non produits
• Unités : nombre de données stockées, échangées,
nombre de requêtes effectuées, …
OPEN API != OPEN SOURCE !
Il existe une spécification sur ce que doit être une OpenAPI...
Une API incluant le mot « Open » permet de supposer
qu’elle respecte les contraintes de cette spécification.
+ Rarement un accès au code interne
+Très souvent limitées (restrictions via adresse IP, tokens, coût/nombre
par requêtes…)
DONNÉES
VÉHICULÉES
• Stateless : 2 états bien distincts, chacun géré par un côté
• État de l’application géré par le client
• État des ressources géré par le serveur
• Principes de la POO (Programmation Orientée-Objet)
• Communiquer via des objets
• Encapsulation des données
• Gestion de données : respecter les opérations CRUD
(Create, Read, Update, Delete)
• Sérialisation des données :
SOAP VERSUS REST
• Simple Object Access Protocol – Framework de protocoles
• Par Microsoft
• Verbeux, lisible et compréhensible par les « non-initiés » -- XML
• Nécessite de coder et maintenir des lecteurs et parseurs spécifiques → mise à jour client quand mise à
jour serveur
• REpresentational State Transfer – Style d’architecture
• Thèse de RoyThomas Fielding
• Ontologie et consensus sur l’écriture (verbes, statuts…)
• Les données peuvent changer rapidement → délégation d’une partie des fonctionnalités grâce à une
entente commune
POSER UNE QUESTION…
• Où se trouve la ressource ?
• Qu’est-ce qu’on va faire à cette ressource ?
• Qui je suis, pourquoi et comment je veux obtenir cette ressource ?
En quelle langue je parle, avec quel « alphabet » ?
• Des précisions sur ce qu’on va faire à la ressource
• URL
• Method
• Headers
• Body
URL
• Uniform Resource Locator
http:// sousdomaine.domaine.gigadomaine :8080 / dossier / sousdossier…
Protocole Chemin « absolu » sur le serveur
Port
Domaine et leurs divisions
UNE URL = UNE ressource (donnée, type de données, traitement…)
URLs = « endpoints »
MÉTHODES HTTP
• GET → Récupération d’une ressource
• PUT → Mise à jour/remplacement de ressources
MÉTHODES HTTP
• GET → Récupération d’une ressource
• PUT → Mise à jour/remplacement de ressources
• POST → Création d’une ressource
• DELETE → Suppression d’une ressource
MÉTHODES HTTP
• GET → Récupération d’une ressource
• PUT → Mise à jour/remplacement de ressources
• POST → Création d’une ressource
• DELETE → Suppression d’une ressource
• HEAD → Informations sur la ressource
• PATCH → Modifier une partie d’une ressource
• TRACE → Retourne ce qui a été reçu (debug)
• OPTIONS → Options de communication d’une ressource
… ET RECEVOIR UNE RÉPONSE
• Comment le serveur a réagi à la demande
• Dans quel langue, avec quels protocoles de communication la
ressource va être partagée
• Une mise en forme de ce qui a été demandé
• Status code
• Headers
• Body
ETATS DES RÉPONSES REÇUES (CODES HTTP)
• 1xx → Information
• 2xx → Requête réussie
• 3xx → Requête redirigée
• 4xx → Requête mal formulée (côté client)
• 5xx → Impossibilité de répondre à la requête (côté serveur)
HEADERS
Authorization → On a obtenu l’autorisation d’accéder aux ressources
Content-Type → Type du fichier demandé, et dans quel codage
Date → Quand est-ce que la requête a été faite ?
Expect → Qu’est-ce qu’on s’attend à avoir comme réponse ?
Host → Quel domaine (et sous-domaine…) a demandé la ressource ?
If-[condition] → Ce qu’on s’attend à avoir si certaines conditions
User-Agent → A partir de quel logiciel/navigateur essaie-t-on de récupérer la ressource ?
BODY
• Vide
• Texte « pur » (lisible sans traitement)
• Bits
• Fichiers multimédia
• Données ordonnées
• JSON
• XML
• HTML (directement interprété par le navigateur…)
MESURE DE QUALITÉ D’UNE API
• Expérience développeur : taille de la communauté, entraide, blogs, etc.
• Sécurité :
• Des données et traitements internes
• Des demandes des utilisateurs
• Bonne gestion des cas d’erreurs et codes HTTP pertinents
• Possibilité d’évolutions : features, données supplémentaires, optimisations…
EXEMPLES
Google et ses services
APIs proposées par Google
Mais également Google Cloud APIs
OPEN RATP
• Comprendre la documentation et analyser les services offerts
Open Data RATP
NOTRE API A NOUS DE JOUER
AVANT TOUT… Conseils et bonnes pratiques
• « Faites des dessins! »
• Penser à son public
• KISS (Keep It Simple, Stupid!)
• « Eating your own dog food »
• ATAWAD (AnyTime, AnyWhere, Any Device)
• Être pessimiste!
• « SISO » à éviter…
VOIR AUSSI POUR LES CURIEUX!
LEXICOGRAPHIE
• API :Application Programming Interface
• RPC : Remote Procedure Call
• SOAP : Simple Object Access Protocol
• WSDL :Web Service Document Language
• REST : REpresentational StateTransfer
• TTFAC :Time To First Api Call
• URL : Uniform Resource Locator
Pour aller plus loin…
• How to Create a REST Protocol
• Learn REST :A Tutorial
• SOAP vs REST differences
• Documenting APIs:A guide for technical writers
• Wikipedia forWebAPIs
• Public APIs for any use
NOTES ET
RÉFÉRENCES
• https://www.mediawiki.org/wiki/Web_APIs_hub

Contenu connexe

Similaire à Comprendre, utiliser et créer une API

Architecture de services web de type ressource
Architecture de services web de type ressourceArchitecture de services web de type ressource
Architecture de services web de type ressource
Antoine Pouch
 
Morning Tech#1 BigData - Oxalide Academy
Morning Tech#1 BigData - Oxalide AcademyMorning Tech#1 BigData - Oxalide Academy
Morning Tech#1 BigData - Oxalide Academy
Oxalide
 
Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18
Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18
Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18
Vincent Biret
 
2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...
2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...
2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...
Modern Workplace Conference Paris
 
Plateforme opendata ouverte par In Cité Solution
Plateforme opendata ouverte par In Cité SolutionPlateforme opendata ouverte par In Cité Solution
Plateforme opendata ouverte par In Cité Solution
In Cité Solution
 
Fondamentaux d’une API REST
Fondamentaux d’une API RESTFondamentaux d’une API REST
Fondamentaux d’une API REST
Abdoulaye Dieng
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
VISEO
 
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
ENSET, Université Hassan II Casablanca
 
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
 
GtugDakar AppEngine, Gwt
GtugDakar AppEngine, GwtGtugDakar AppEngine, Gwt
GtugDakar AppEngine, Gwt
hkairi
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmedia
Microsoft
 
Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)
Vincent Biret
 
Accéder aux données avec le windows runtime
Accéder aux données avec le windows runtimeAccéder aux données avec le windows runtime
Accéder aux données avec le windows runtime
Arnaud Auroux
 
ENIB 2013-2014 - CAI Web #1: Côté navigateur 1/3
ENIB 2013-2014 - CAI Web #1: Côté navigateur 1/3ENIB 2013-2014 - CAI Web #1: Côté navigateur 1/3
ENIB 2013-2014 - CAI Web #1: Côté navigateur 1/3
Horacio Gonzalez
 
Architectures microservices
Architectures microservicesArchitectures microservices
Architectures microservices
Riadh MNASRI
 
Présentation sharepoint 2013
Présentation sharepoint 2013Présentation sharepoint 2013
Présentation sharepoint 2013
Mohammed Amine Mostefai
 
Vincent biret azure functions et flow #AosCanadianTour (quebec)
Vincent biret azure functions et flow #AosCanadianTour (quebec)Vincent biret azure functions et flow #AosCanadianTour (quebec)
Vincent biret azure functions et flow #AosCanadianTour (quebec)
Vincent Biret
 
S51 vos projets web services ibm i a l aide de php
S51   vos projets web services ibm i a l aide de phpS51   vos projets web services ibm i a l aide de php
S51 vos projets web services ibm i a l aide de php
Gautier DUMAS
 
#SPSParis quoi de neuf avec le microsoft graph
#SPSParis quoi de neuf avec le microsoft graph#SPSParis quoi de neuf avec le microsoft graph
#SPSParis quoi de neuf avec le microsoft graph
Vincent Biret
 
U1 - Quoi de neuf avec le Microsoft Graph - Vincent Biret
U1 - Quoi de neuf avec le Microsoft Graph - Vincent BiretU1 - Quoi de neuf avec le Microsoft Graph - Vincent Biret
U1 - Quoi de neuf avec le Microsoft Graph - Vincent Biret
SPS Paris
 

Similaire à Comprendre, utiliser et créer une API (20)

Architecture de services web de type ressource
Architecture de services web de type ressourceArchitecture de services web de type ressource
Architecture de services web de type ressource
 
Morning Tech#1 BigData - Oxalide Academy
Morning Tech#1 BigData - Oxalide AcademyMorning Tech#1 BigData - Oxalide Academy
Morning Tech#1 BigData - Oxalide Academy
 
Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18
Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18
Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18
 
2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...
2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...
2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...
 
Plateforme opendata ouverte par In Cité Solution
Plateforme opendata ouverte par In Cité SolutionPlateforme opendata ouverte par In Cité Solution
Plateforme opendata ouverte par In Cité Solution
 
Fondamentaux d’une API REST
Fondamentaux d’une API RESTFondamentaux d’une API REST
Fondamentaux d’une API REST
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
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
 
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)
 
GtugDakar AppEngine, Gwt
GtugDakar AppEngine, GwtGtugDakar AppEngine, Gwt
GtugDakar AppEngine, Gwt
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmedia
 
Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)
 
Accéder aux données avec le windows runtime
Accéder aux données avec le windows runtimeAccéder aux données avec le windows runtime
Accéder aux données avec le windows runtime
 
ENIB 2013-2014 - CAI Web #1: Côté navigateur 1/3
ENIB 2013-2014 - CAI Web #1: Côté navigateur 1/3ENIB 2013-2014 - CAI Web #1: Côté navigateur 1/3
ENIB 2013-2014 - CAI Web #1: Côté navigateur 1/3
 
Architectures microservices
Architectures microservicesArchitectures microservices
Architectures microservices
 
Présentation sharepoint 2013
Présentation sharepoint 2013Présentation sharepoint 2013
Présentation sharepoint 2013
 
Vincent biret azure functions et flow #AosCanadianTour (quebec)
Vincent biret azure functions et flow #AosCanadianTour (quebec)Vincent biret azure functions et flow #AosCanadianTour (quebec)
Vincent biret azure functions et flow #AosCanadianTour (quebec)
 
S51 vos projets web services ibm i a l aide de php
S51   vos projets web services ibm i a l aide de phpS51   vos projets web services ibm i a l aide de php
S51 vos projets web services ibm i a l aide de php
 
#SPSParis quoi de neuf avec le microsoft graph
#SPSParis quoi de neuf avec le microsoft graph#SPSParis quoi de neuf avec le microsoft graph
#SPSParis quoi de neuf avec le microsoft graph
 
U1 - Quoi de neuf avec le Microsoft Graph - Vincent Biret
U1 - Quoi de neuf avec le Microsoft Graph - Vincent BiretU1 - Quoi de neuf avec le Microsoft Graph - Vincent Biret
U1 - Quoi de neuf avec le Microsoft Graph - Vincent Biret
 

Dernier

Iris et les hommes.pptx
Iris      et         les      hommes.pptxIris      et         les      hommes.pptx
Iris et les hommes.pptx
Txaruka
 
4 expositions à voir à Paris.pptx
4   expositions    à   voir   à Paris.pptx4   expositions    à   voir   à Paris.pptx
4 expositions à voir à Paris.pptx
Txaruka
 
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
IES Turina/Rodrigo/Itaca/Palomeras
 
Projet de fin d'étude licence en sciece.pptx
Projet de fin d'étude licence en sciece.pptxProjet de fin d'étude licence en sciece.pptx
Projet de fin d'étude licence en sciece.pptx
elfangourabdelouahab
 
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
BenotGeorges3
 
Contrôle fiscale en république de guinée
Contrôle fiscale en république de guinéeContrôle fiscale en république de guinée
Contrôle fiscale en république de guinée
bangalykaba146
 
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Formation
 
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
schneiderbeatrice78
 
Bilan schéma pour réun concertation SDLP V4.pptx
Bilan schéma pour réun concertation SDLP V4.pptxBilan schéma pour réun concertation SDLP V4.pptx
Bilan schéma pour réun concertation SDLP V4.pptx
bibliogard
 
Calendrier du 3 juin 2024 et compte rendu.pdf
Calendrier du 3 juin 2024 et compte rendu.pdfCalendrier du 3 juin 2024 et compte rendu.pdf
Calendrier du 3 juin 2024 et compte rendu.pdf
frizzole
 
Festival de Cannes 2024.pptx
Festival      de      Cannes     2024.pptxFestival      de      Cannes     2024.pptx
Festival de Cannes 2024.pptx
Txaruka
 
Mémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et auditMémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et audit
MelDjobo
 
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
SYLLABUS DU COURS  MARKETING DTS 1-2.pdfSYLLABUS DU COURS  MARKETING DTS 1-2.pdf
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
Moukagni Evrard
 
Méthodologie de recherche et de rédaction de mémoire.pptx
Méthodologie de recherche et de rédaction de mémoire.pptxMéthodologie de recherche et de rédaction de mémoire.pptx
Méthodologie de recherche et de rédaction de mémoire.pptx
LamoussaPaulOuattara1
 
Exame DELF - A2 Francês pout tout public
Exame DELF - A2  Francês pout tout publicExame DELF - A2  Francês pout tout public
Exame DELF - A2 Francês pout tout public
GiselaAlves15
 
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdf
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdfCours SE - Gestion de la mémoire- Cours IG IPSET.pdf
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdf
MedBechir
 

Dernier (16)

Iris et les hommes.pptx
Iris      et         les      hommes.pptxIris      et         les      hommes.pptx
Iris et les hommes.pptx
 
4 expositions à voir à Paris.pptx
4   expositions    à   voir   à Paris.pptx4   expositions    à   voir   à Paris.pptx
4 expositions à voir à Paris.pptx
 
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
 
Projet de fin d'étude licence en sciece.pptx
Projet de fin d'étude licence en sciece.pptxProjet de fin d'étude licence en sciece.pptx
Projet de fin d'étude licence en sciece.pptx
 
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
 
Contrôle fiscale en république de guinée
Contrôle fiscale en république de guinéeContrôle fiscale en république de guinée
Contrôle fiscale en république de guinée
 
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
 
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
 
Bilan schéma pour réun concertation SDLP V4.pptx
Bilan schéma pour réun concertation SDLP V4.pptxBilan schéma pour réun concertation SDLP V4.pptx
Bilan schéma pour réun concertation SDLP V4.pptx
 
Calendrier du 3 juin 2024 et compte rendu.pdf
Calendrier du 3 juin 2024 et compte rendu.pdfCalendrier du 3 juin 2024 et compte rendu.pdf
Calendrier du 3 juin 2024 et compte rendu.pdf
 
Festival de Cannes 2024.pptx
Festival      de      Cannes     2024.pptxFestival      de      Cannes     2024.pptx
Festival de Cannes 2024.pptx
 
Mémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et auditMémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et audit
 
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
SYLLABUS DU COURS  MARKETING DTS 1-2.pdfSYLLABUS DU COURS  MARKETING DTS 1-2.pdf
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
 
Méthodologie de recherche et de rédaction de mémoire.pptx
Méthodologie de recherche et de rédaction de mémoire.pptxMéthodologie de recherche et de rédaction de mémoire.pptx
Méthodologie de recherche et de rédaction de mémoire.pptx
 
Exame DELF - A2 Francês pout tout public
Exame DELF - A2  Francês pout tout publicExame DELF - A2  Francês pout tout public
Exame DELF - A2 Francês pout tout public
 
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdf
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdfCours SE - Gestion de la mémoire- Cours IG IPSET.pdf
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdf
 

Comprendre, utiliser et créer une API

  • 2. SOMMAIRE • Carte d’identité d’une API • Utilisation • Consommateur • Producteur • Marché • Catégories d’API • Données véhiculées • SOAP et REST • Exemples • Des idées qui émergent? • Pour les curieux…
  • 3. CARTE D’IDENTITÉ D’UNE API • Quoi ? Ensemble de fonctions exposées par un programme tiers pour accéder à tout ou partie de ses fonctionnalités • Qui ? Par des développeurs pour des développeurs • Comment ? N’importe quel langage de programmation ! • Une API ≡ plusieurs implémentations • Par abus de langage, les API couramment utilisées et entendues comme telles sont des accès à des web services • Où et quand ? …
  • 4.
  • 6. POURQUOI ? • “I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it.” ― Bill Gates
  • 7. AVANT… MAINTENANT APRES? ??? S’adapter aux évolutions technologiques
  • 8. Contrat tacite producteur-consommateur : Qu’autorise-t-on à faire et comment ?
  • 9. UTILISATION : CÔTÉ CONSOMMATEUR PROS • Utilisation de fonctionnalités même si expertise et/ou ressources manquantes en interne • Standardisation des API garantit des consensus d’utilisation (ex. : standards HTTP, modèle REST, etc.) → grande communauté et possibilité d’entraide • Mise en pratique rapide avant rachat ou recherche en interne sur d’autres pistes CONS • Dépendance très forte au producteur → maintenance ± accrue lors d’évolutions (modification des algorithmes, dépréciation de fonctionnalités, voire cessation de services) • Problèmes de compatibilité entre API → boîte noire avec les dépendances importées
  • 10. UTILISATION : CÔTÉ PRODUCTEUR • Industrialisation et monétisation des algorithmes et/ou des données • Inclusion de nouveaux acteurs au sein de son marché (recrutement des utilisateurs, intégration de nouveaux usages via feedbacks…) • Maîtrise des données échangées : sécurisation des données plutôt que d’un monolithe applicatif • Pas de présupposé sur les technologies finales employées : support et maintenance réduits aux fonctionnalités • Implémentation respectueuse des standards (guidelines préexistantes...) → Gain de temps lors des spécifications • Découpage en micro-services : concentration sur cœur de métier/fonctionnalité, même en interne
  • 11. Catégories d’API API de système d’exploitation API de langage de programmation API d’infrastructure API ou service web
  • 12. SPÉCIFICITÉS DES API POUR DEVICES « MOBILES » • Prendre en compte les utilisateurs finaux! → ATAWAD • Besoin d’instantané (AnyTime,AnyWhere) • Multiplicité des interactions entre applications sur un ou entre appareil(s) (AnyDevice) • Architecture client-serveur, les clients étant les appareils de X marques • Optimisation des transmissions de données (requêtes, temps de traitement, etc.) • Atomisation de l’information • « Technology-agnostism »
  • 13. MARCHÉ : UNE EXPLOSION DU TERME “API” EN MARKETING • Concentration sur un service fourni plutôt qu’un produit – pas de dépendance matérielle! • Réseaux facilement accessibles : mises à jour en temps réel, possibilité de traitements asynchrones… • Régulation des requêtes, meilleur management côté serveur • Business model ≡ licences et non produits • Unités : nombre de données stockées, échangées, nombre de requêtes effectuées, …
  • 14. OPEN API != OPEN SOURCE ! Il existe une spécification sur ce que doit être une OpenAPI... Une API incluant le mot « Open » permet de supposer qu’elle respecte les contraintes de cette spécification. + Rarement un accès au code interne +Très souvent limitées (restrictions via adresse IP, tokens, coût/nombre par requêtes…)
  • 15. DONNÉES VÉHICULÉES • Stateless : 2 états bien distincts, chacun géré par un côté • État de l’application géré par le client • État des ressources géré par le serveur • Principes de la POO (Programmation Orientée-Objet) • Communiquer via des objets • Encapsulation des données • Gestion de données : respecter les opérations CRUD (Create, Read, Update, Delete) • Sérialisation des données :
  • 16. SOAP VERSUS REST • Simple Object Access Protocol – Framework de protocoles • Par Microsoft • Verbeux, lisible et compréhensible par les « non-initiés » -- XML • Nécessite de coder et maintenir des lecteurs et parseurs spécifiques → mise à jour client quand mise à jour serveur • REpresentational State Transfer – Style d’architecture • Thèse de RoyThomas Fielding • Ontologie et consensus sur l’écriture (verbes, statuts…) • Les données peuvent changer rapidement → délégation d’une partie des fonctionnalités grâce à une entente commune
  • 17. POSER UNE QUESTION… • Où se trouve la ressource ? • Qu’est-ce qu’on va faire à cette ressource ? • Qui je suis, pourquoi et comment je veux obtenir cette ressource ? En quelle langue je parle, avec quel « alphabet » ? • Des précisions sur ce qu’on va faire à la ressource • URL • Method • Headers • Body
  • 18. URL • Uniform Resource Locator http:// sousdomaine.domaine.gigadomaine :8080 / dossier / sousdossier… Protocole Chemin « absolu » sur le serveur Port Domaine et leurs divisions UNE URL = UNE ressource (donnée, type de données, traitement…) URLs = « endpoints »
  • 19. MÉTHODES HTTP • GET → Récupération d’une ressource • PUT → Mise à jour/remplacement de ressources
  • 20. MÉTHODES HTTP • GET → Récupération d’une ressource • PUT → Mise à jour/remplacement de ressources • POST → Création d’une ressource • DELETE → Suppression d’une ressource
  • 21. MÉTHODES HTTP • GET → Récupération d’une ressource • PUT → Mise à jour/remplacement de ressources • POST → Création d’une ressource • DELETE → Suppression d’une ressource • HEAD → Informations sur la ressource • PATCH → Modifier une partie d’une ressource • TRACE → Retourne ce qui a été reçu (debug) • OPTIONS → Options de communication d’une ressource
  • 22. … ET RECEVOIR UNE RÉPONSE • Comment le serveur a réagi à la demande • Dans quel langue, avec quels protocoles de communication la ressource va être partagée • Une mise en forme de ce qui a été demandé • Status code • Headers • Body
  • 23. ETATS DES RÉPONSES REÇUES (CODES HTTP) • 1xx → Information • 2xx → Requête réussie • 3xx → Requête redirigée • 4xx → Requête mal formulée (côté client) • 5xx → Impossibilité de répondre à la requête (côté serveur)
  • 24. HEADERS Authorization → On a obtenu l’autorisation d’accéder aux ressources Content-Type → Type du fichier demandé, et dans quel codage Date → Quand est-ce que la requête a été faite ? Expect → Qu’est-ce qu’on s’attend à avoir comme réponse ? Host → Quel domaine (et sous-domaine…) a demandé la ressource ? If-[condition] → Ce qu’on s’attend à avoir si certaines conditions User-Agent → A partir de quel logiciel/navigateur essaie-t-on de récupérer la ressource ?
  • 25. BODY • Vide • Texte « pur » (lisible sans traitement) • Bits • Fichiers multimédia • Données ordonnées • JSON • XML • HTML (directement interprété par le navigateur…)
  • 26. MESURE DE QUALITÉ D’UNE API • Expérience développeur : taille de la communauté, entraide, blogs, etc. • Sécurité : • Des données et traitements internes • Des demandes des utilisateurs • Bonne gestion des cas d’erreurs et codes HTTP pertinents • Possibilité d’évolutions : features, données supplémentaires, optimisations…
  • 28.
  • 29. Google et ses services APIs proposées par Google Mais également Google Cloud APIs
  • 30. OPEN RATP • Comprendre la documentation et analyser les services offerts Open Data RATP
  • 31. NOTRE API A NOUS DE JOUER
  • 32. AVANT TOUT… Conseils et bonnes pratiques • « Faites des dessins! » • Penser à son public • KISS (Keep It Simple, Stupid!) • « Eating your own dog food » • ATAWAD (AnyTime, AnyWhere, Any Device) • Être pessimiste! • « SISO » à éviter…
  • 33. VOIR AUSSI POUR LES CURIEUX!
  • 34. LEXICOGRAPHIE • API :Application Programming Interface • RPC : Remote Procedure Call • SOAP : Simple Object Access Protocol • WSDL :Web Service Document Language • REST : REpresentational StateTransfer • TTFAC :Time To First Api Call • URL : Uniform Resource Locator
  • 35. Pour aller plus loin… • How to Create a REST Protocol • Learn REST :A Tutorial • SOAP vs REST differences • Documenting APIs:A guide for technical writers • Wikipedia forWebAPIs • Public APIs for any use