Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

Chapitre 114 minIntermédiaire

C'est quoi une API ? Définition et exemples

Par Josselyn C., prof de BTS SIO. Mis à jour le .

À la fin de ce chapitre, tu sauras

  • expliquer ce qu'est une API et ce qu'elle apporte à une application ;
  • distinguer une API web d'une API de bibliothèque ou du système ;
  • décrire le trajet d'une requête du client jusqu'à la base de données ;
  • reconnaître une API REST et les autres familles d'API web.

3 exercices corrigés1 schéma

Une API (Application Programming Interface, interface de programmation d'application) est un ensemble de règles qui permet à un programme d'utiliser les données ou les fonctions d'un autre programme, sans connaître son code. Une API web fait ce travail à travers le réseau, avec le protocole HTTP. Ce chapitre explique à quoi sert une API, ce qui distingue une API REST des autres, et où les API apparaissent dans le BTS SIO.

Une API, c'est un contrat

Imagine un restaurant. Tu ne vas pas en cuisine : tu lis la carte, tu passes commande au serveur, et il te rapporte ton plat. La carte dit ce que tu peux demander et sous quelle forme ; ce qui se passe en cuisine ne te regarde pas. Une API joue le rôle de la carte et du serveur : elle publie la liste des demandes possibles, la forme exacte de chaque demande et de chaque réponse, et elle cache tout le reste (le langage, la base de données, l'organisation du code).

Ce contrat apporte trois choses :

  • le découplage : le front et le serveur évoluent chacun de leur côté tant que le contrat est respecté. Tu peux remplacer MySQL par PostgreSQL, ou réécrire le serveur de PHP en Node.js, sans toucher à l'application mobile ;
  • la réutilisation : une même API sert le site web, l'application mobile, l'outil interne du service comptable et le logiciel d'un partenaire ;
  • le contrôle : les autres programmes ne touchent jamais la base de données directement. Ils passent par l'API, qui vérifie qui demande quoi et applique les règles de gestion.

Les API ne sont pas toutes sur le web

Le mot API est plus large que le web. Tu en utilises déjà sans le savoir :

Type d'APIExempleComment on l'appelle
API d'une bibliothèqueLes fonctions de Math en JavaScript, la classe PDO en PHPUn appel de fonction dans ton code
API du système d'exploitationL'API Win32 de Windows, les appels système de Linux (open, read)Un appel de fonction, traduit en appel au noyau
API du navigateurLe DOM, fetch, localStorage, la géolocalisationDu JavaScript dans la page
API webL'API d'AppliFrais, l'API de paiement d'une banque, une API de météoUne requête HTTP à travers le réseau

Dans ce cours, « API » désigne une API web, et le plus souvent une API REST. Quand tu entends « appeler une API », « consommer un service web » ou « interroger un web service », c'est la même idée : envoyer une requête HTTP à un serveur qui renvoie des données.

Le modèle client-serveur

Une API web fonctionne en client-serveur. Le client est le programme qui envoie la requête : un front React, une application Android, un script Python, une application C# de bureau, ou un autre serveur. Le serveur reçoit la requête, fait le travail (lire la base, calculer, appliquer une règle de gestion), puis renvoie une réponse. Le client ne voit jamais la base de données.

les clientsFront webdans un navigateurApplication mobiledes visiteursLogiciel partenairepaie, comptabilitéHTTPSAPI AppliFraiscontrôle le jetonvérifie les droitsapplique les règlesrenvoie du JSONSQLBaseMySQLaucun client ne se connecte directement à la base
Trois clients, une API, une base : seule l'API parle à la base de données

Concrètement, voici ce qui se passe quand Lucas Martin, visiteur médical, ouvre la page « Mes fiches » d'AppliFrais :

  1. Le front envoie la requête GET https://api.gsb.example/v1/fiches?mois=2026-10, avec son jeton d'authentification.
  2. L'API vérifie le jeton : c'est bien Lucas, visiteur n° 7.
  3. Elle lit dans la base la fiche d'octobre 2026 de ce visiteur, et seulement la sienne.
  4. Elle renvoie le code 200 OK et un document JSON qui décrit la fiche.
  5. Le front affiche la fiche. Il ne sait pas si les données viennent de MySQL, d'un fichier ou d'un autre service.

Ce que l'API renvoie : des données, pas une page

Un site web classique en PHP renvoie une page HTML complète, prête à afficher. Une API renvoie des données brutes, que le client met en forme lui-même. Voici la réponse de l'API d'AppliFrais à la requête précédente :

json
{
  "id": 12,
  "visiteurId": 7,
  "mois": "2026-10",
  "etat": "CR",
  "montantValide": null
}

Ce document en JSON (chapitre 5) dit que la fiche n° 12 appartient au visiteur 7, porte sur octobre 2026, est à l'état CR (en cours de saisie) et n'a pas encore de montant validé. Le front web l'affiche dans un tableau, l'application mobile dans une liste, le logiciel du partenaire l'enregistre dans sa propre base : trois présentations différentes, une seule API.

Site web classiqueAPI
Ce que renvoie le serveurUne page HTML complèteDes données (JSON, plus rarement XML)
Qui met en formeLe serveurLe client
Qui l'utiliseUn humain, dans un navigateurUn programme
NavigationLiens et formulairesRequêtes construites par le code du client
Exemplehttps://frais.gsb.example/mes-fiches.phphttps://api.gsb.example/v1/fiches

Une API REST, c'est quoi ?

REST (Representational State Transfer) est un style d'architecture décrit par Roy Fielding dans sa thèse de doctorat en 2000. Ce n'est ni un protocole, ni une norme, ni une bibliothèque : c'est un ensemble de principes. Une API est dite REST ou RESTful quand elle les respecte. Les principaux :

  • tout ce que l'API manipule est une ressource (une fiche, un visiteur, un justificatif), identifiée par une adresse (une URI) : /v1/fiches/12 ;
  • on agit sur les ressources avec les méthodes standard de HTTP : GET pour lire, POST pour créer, PUT ou PATCH pour modifier, DELETE pour supprimer ;
  • chaque requête est sans état (stateless) : elle contient tout ce qu'il faut pour être traitée, y compris la preuve de l'identité du client. Le serveur ne garde pas de session entre deux requêtes ;
  • le serveur répond avec un code de statut HTTP standard (200, 201, 404…) et une représentation de la ressource, le plus souvent en JSON.

Le chapitre 4 détaille les six contraintes de Fielding et la façon de nommer les ressources. Retiens pour l'instant le couple qui fait REST : l'URI dit sur quoi on agit, la méthode HTTP dit ce qu'on fait.

text
GET    /v1/fiches        lire la liste des fiches
POST   /v1/fiches        créer une fiche
GET    /v1/fiches/12     lire la fiche 12
PATCH  /v1/fiches/12     modifier une partie de la fiche 12
DELETE /v1/fiches/12     supprimer la fiche 12

Les autres familles d'API web

REST est la famille la plus répandue, mais pas la seule. Tu dois savoir les reconnaître : le chapitre 12 les compare en détail.

FamillePrincipeFormatOù on la rencontre
RESTDes ressources à des URI, les méthodes HTTPJSON surtoutLa grande majorité des API publiques et internes
SOAPDes opérations appelées en envoyant une enveloppe XML, décrites dans un fichier WSDLXMLSystèmes d'information anciens, banques, administrations, échanges B2B
GraphQLUne seule adresse ; le client écrit une requête qui dit exactement quels champs il veutJSONApplications avec beaucoup de données reliées (réseaux sociaux, e-commerce)
gRPCDes procédures distantes, décrites dans un fichier .proto, sur HTTP/2Protocol Buffers (binaire)Échanges entre microservices d'une même organisation
WebhookL'inverse d'un appel : c'est le serveur qui appelle ton application quand un événement se produitJSONNotifications de paiement, événements GitHub
WebSocketUne connexion permanente, dans les deux sensTexte ou binaireMessagerie instantanée, tableaux de bord en temps réel, jeux

Des API que tu peux appeler dès aujourd'hui

Pour t'entraîner, rien ne vaut une vraie API publique, gratuite et sans inscription :

  • API Découpage administratif de l'État : https://geo.api.gouv.fr/communes?codePostal=69001 renvoie les communes qui ont ce code postal, en JSON.
  • Open-Meteo : des prévisions météo pour des coordonnées GPS, sans clé d'API pour un usage non commercial.
  • JSONPlaceholder : une fausse API de démonstration (articles, commentaires, utilisateurs) qui accepte même les POST, PUT et DELETE sans rien enregistrer.

Colle la première adresse dans ton navigateur : tu viens d'appeler une API REST avec une requête GET. Le navigateur affiche le JSON brut, souvent mis en forme par son visualiseur intégré. Pour les autres méthodes, il faut un client HTTP : c'est l'objet du chapitre 11.

Où les API tombent au BTS SIO

Le référentiel du bloc 2 SLAM attend que tu saches « exploiter les technologies Web pour mettre en œuvre les échanges entre applications, y compris de mobilité ». Concrètement :

ÉpreuveCe qu'on attend de toi
E5 (oral, bloc 1, commun aux deux options)Présenter ton parcours et ton portfolio ; une API documentée et déployée peut figurer dans ton tableau de synthèse au titre de la mise à disposition d'un service (cours E5)
E6 SLAM (épreuve d'option, bloc 2)Faire évoluer en une heure l'une de tes deux réalisations, à partir d'une expression des besoins remise par la commission : ajouter une route, un filtre, un contrôle de rôle, puis le démontrer (cours E6 SLAM)
E7 SLAM (écrit de cybersécurité, U7)Lire un échange HTTP ou un journal de serveur, choisir le code de statut, distinguer authentification et autorisation, sécuriser une route, choisir entre clé d'API et jeton (chapitre 8 du cours E7 SLAM)

Le chapitre 13 rassemble les questions types d'examen et un cas corrigé complet.

Exercices

Exercice 1 sur 3 API ou pas API ? Réussi À revoir

Pour chaque situation, dis si un programme utilise une API web, et justifie en une phrase.

  1. L'application mobile d'une banque affiche le solde du compte.
  2. Un étudiant ouvre https://www.legifrance.gouv.fr dans son navigateur et lit un article de loi.
  3. Un script Python récupère chaque nuit les cours du change auprès d'un service en ligne et les enregistre dans un fichier.
  4. Un programme C# appelle Math.Round(3.14159, 2).
  5. Le site d'un e-commerçant affiche un bouton « Payer » qui passe par un prestataire de paiement, lequel prévient ensuite le site que le paiement a réussi.
Voir la réponseMasquer la réponse de l'exercice 1
  1. Oui : l'application envoie une requête HTTP à l'API de la banque et affiche les données reçues (presque toujours du JSON).
  2. Non : c'est un humain qui consulte une page HTML. Le navigateur fait bien une requête HTTP, mais il reçoit une page à afficher, pas des données destinées à un programme.
  3. Oui : le script appelle une API web de cours du change et traite la réponse.
  4. Non, pas une API web : c'est l'API d'une bibliothèque (.NET), appelée directement dans le code, sans réseau.
  5. Oui, dans les deux sens : le site appelle l'API du prestataire pour créer le paiement, puis le prestataire appelle le site par un webhook pour le prévenir du résultat (chapitre 12).

Tu avais trouvé ?

Exercice 2 sur 3 Lire une première réponse Réussi À revoir

L'API d'AppliFrais renvoie ce document à la requête GET /v1/fiches/11 :

json
{
  "id": 11,
  "visiteurId": 7,
  "mois": "2026-09",
  "etat": "VA",
  "montantValide": 389.2
}
  1. Quelle ressource a été demandée, et avec quelle méthode ?
  2. Que peux-tu dire de cette fiche ?
  3. Le front affiche « 389,20 € ». Qui a mis le montant en forme : le serveur ou le client ?
  4. Avec quelle méthode et quelle adresse supprimerait-on cette fiche, si l'API l'autorisait ?
Voir la réponseMasquer la réponse de l'exercice 2
  1. La fiche n° 11, avec la méthode GET (lecture).
  2. Elle appartient au visiteur 7, porte sur septembre 2026, est à l'état VA (validée) et son montant validé est de 389,20 €.
  3. Le client : l'API renvoie le nombre brut 389.2 ; le front le formate selon la langue de l'utilisateur, avec la virgule, deux décimales et le symbole euro.
  4. DELETE /v1/fiches/11. En pratique, l'API d'AppliFrais refuserait : une fiche validée ne se supprime pas, c'est une règle de gestion.

Tu avais trouvé ?

Exercice 3 sur 3 Pourquoi passer par une API ? Réussi À revoir

Le laboratoire GSB veut une application mobile pour les visiteurs. Un développeur propose de laisser l'application se connecter directement au serveur MySQL d'AppliFrais, « c'est plus simple ». Donne trois raisons de passer plutôt par une API.

Voir la réponseMasquer la réponse de l'exercice 3
  • Sécurité : se connecter à MySQL suppose d'embarquer un compte et un mot de passe de la base dans l'application, qui se décompile en quelques minutes. N'importe qui pourrait lire ou modifier toutes les fiches. Avec une API, l'application ne détient qu'un jeton personnel, et l'API ne renvoie que les fiches du visiteur connecté.
  • Règles de gestion : c'est l'API qui interdit de modifier une fiche clôturée ou de valider sa propre fiche. Sans API, chaque client devrait réimplémenter ces règles, et un client modifié pourrait les ignorer.
  • Découplage : si la structure de la base change, seule l'API est modifiée ; les applications déjà installées sur les téléphones continuent de fonctionner tant que le contrat de l'API ne change pas.

On peut ajouter l'exposition réseau : ouvrir le port 3306 de MySQL sur Internet exposerait la base à des attaques directes.

Tu avais trouvé ?

Chapitre terminé !

Fais les 3 exercices avant de passer à la suite : c'est en t'entraînant que tout se fixe.

chapitres
–
de série
–
du cours
–
Chapitre suivant : Le protocole HTTP : requête, réponse, méthodes et en-têtesRevoir le sommaire du cours