Aller au contenu
Réussir mon BTS SIO

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

Par exemple

13 chapitres4 h 26 minIntermédiaire

API REST et échanges entre applications

Cours API REST gratuit pour le BTS SIO SLAM : HTTP, codes de statut, JSON, conception, OpenAPI, fetch, JWT, CORS, tests et exercices corrigés.

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

L'essentiel

Une API REST est la porte d'entrée qu'une application ouvre à d'autres programmes : un front web, une application mobile, le logiciel d'un partenaire. Ils lui envoient des requêtes HTTP sur des adresses qui désignent des ressources (/v1/fiches/12), et elle répond avec un code de statut et des données, presque toujours en JSON. Au BTS SIO, c'est le cœur de la compétence « échanges entre applications » du bloc 2 SLAM : tu en construis une dans tes réalisations professionnelles, tu la présentes à l'E6, et l'écrit E7 te demande de la lire, de choisir les bons codes de statut et de la sécuriser.

Ce cours est indépendant du langage. Il t'apprend comment fonctionne une API et comment bien la concevoir ; les cours Node.js et Express et PHP et MySQL montrent ensuite comment la coder côté serveur, le cours MongoDB et API Node.js comment la brancher sur une base MongoDB, et les cours C# et WinForms, React et Développement mobile comment l'appeler depuis un client lourd, un navigateur ou un téléphone.

À la fin de ce cours, tu sauras :

  • lire un échange HTTP complet : méthode, adresse, en-têtes, corps, code de statut ;
  • concevoir les routes d'une API REST à partir d'un besoin, avec pagination, filtres, versionnement et erreurs normalisées ;
  • documenter une API avec OpenAPI et la tester avec curl, Bruno ou Postman ;
  • appeler une API depuis JavaScript, PHP, Python ou C# en gérant les erreurs ;
  • authentifier les appels (clé d'API, jeton JWT, OAuth 2.0) et protéger l'API contre les risques de l'OWASP API Security Top 10 ;
  • situer REST face aux webhooks, à GraphQL, à gRPC et aux WebSockets ;
  • traiter les questions d'API d'un sujet d'E7 SLAM.

Prérequis. Savoir ce qu'est un serveur web et avoir écrit quelques lignes de JavaScript ou de PHP. Les chapitres 1 à 4, 6 et 7 se lisent sans savoir programmer ; le chapitre 5 montre la conversion en JSON dans plusieurs langages et le chapitre 8 des appels complets en JavaScript, PHP, Python et C# : lis les exemples du langage que tu pratiques.

Le fil rouge. Tous les exemples portent sur l'API d'AppliFrais, l'application de gestion des frais des visiteurs médicaux du laboratoire GSB, un contexte que tu retrouves dans beaucoup d'ateliers de professionnalisation. Un visiteur saisit chaque mois une fiche de frais ; il la clôture ; un comptable la valide, puis la met en paiement. L'API est servie à l'adresse https://api.gsb.example, le front à https://frais.gsb.example (le domaine .example est réservé à la documentation : ces adresses n'existent pas).

Comment travailler. Les échanges HTTP montrés dans le cours ont été produits par une vraie API de démonstration : tu peux reproduire les commandes curl sur ta propre API. Chaque chapitre se termine par des exercices dont la réponse est masquée : cherche d'abord, ouvre ensuite.

Ton objectifChapitres à travailler en priorité
Comprendre ce qu'est une API REST1 à 4
Construire l'API de ta réalisation pour l'E64 à 9 et 11
Relier un front ou une application mobile à une API2, 3, 8, 9 et 10
Préparer l'E7 SLAM2, 3, 9, 10 et 13
Réviser la veille de l'épreuve3, 10 et 13

Sommaire

0%

API REST

0 chapitre sur 13

  1. Chapitre 1 : C'est quoi une API ? Définition et exemples14 min
  2. Chapitre 2 : Le protocole HTTP : requête, réponse, méthodes et en-têtes22 min
  3. Chapitre 3 : Codes de statut HTTP : 200, 201, 400, 401, 403, 404, 50016 min
  4. Chapitre 4 : Principes REST : ressources, URI et contraintes15 min
  5. Chapitre 5 : JSON, XML et CSV : les formats d'échange de données21 min
  6. Chapitre 6 : Concevoir une API REST : pagination, filtres, versionnement, erreurs23 min
  7. Chapitre 7 : Documenter une API avec OpenAPI et Swagger26 min
  8. Chapitre 8 : Consommer une API : fetch en JavaScript, PHP, Python et C#27 min
  9. Chapitre 9 : Authentifier une API : clé d'API, Bearer, JWT et OAuth 2.023 min
  10. Chapitre 10 : CORS et sécurité des API : OWASP API Top 10, limitation de débit22 min
  11. Chapitre 11 : Tester une API : curl, Bruno, Postman et HTTPie19 min
  12. Chapitre 12 : Webhooks, GraphQL, gRPC et WebSocket : les alternatives à REST20 min
  13. Chapitre 13 : API REST à l'examen : E6 et E7 SLAM, cas corrigé17 min
Commencer le cours

Questions fréquentes

C'est quoi une API REST ?

Une API REST est une interface qui permet à des programmes d'utiliser les données et les fonctions d'une application à travers le web, en suivant le style d'architecture REST décrit par Roy Fielding en 2000. Chaque ressource (une fiche, un client, une commande) a une adresse, par exemple /v1/fiches/12, et on agit dessus avec les méthodes de HTTP : GET pour lire, POST pour créer, PUT ou PATCH pour modifier, DELETE pour supprimer. Le serveur répond avec un code de statut et des données, presque toujours en JSON (chapitre 1).

Quelle est la différence entre une API et une API REST ?

« API » est le terme général : toute interface qui permet à un programme d'en utiliser un autre, que ce soit une bibliothèque, le système d'exploitation ou un service web. Une API REST est une API web qui respecte les principes REST : des ressources identifiées par des URI, les méthodes et les codes de statut de HTTP, des échanges sans état. SOAP, GraphQL et gRPC sont d'autres familles d'API web (comparaison au chapitre 12).

Quelle est la différence entre PUT et PATCH ?

PUT remplace toute la ressource par celle qu'envoie le client : un champ absent du corps est effacé ou provoque un refus. PATCH ne modifie que les champs envoyés et laisse les autres intacts. PUT est idempotent (l'envoyer deux fois donne le même résultat), alors que PATCH ne l'est pas forcément, si le corps décrit une opération relative comme « ajouter 10 » (chapitre 2).

Quelle est la différence entre les codes 401 et 403 ?

401 Unauthorized signifie que le serveur ne sait pas qui fait la requête : jeton absent, invalide ou expiré. 403 Forbidden signifie que le client est bien authentifié, mais qu'il n'a pas le droit de faire cette action. Le premier appelle une (re)connexion, le second un refus définitif. Pour une ressource qui appartient à un autre utilisateur, beaucoup d'API répondent 404, pour ne pas révéler qu'elle existe (chapitre 3).

C'est quoi une erreur CORS et comment la corriger ?

Une erreur CORS apparaît quand une page web appelle une API d'une autre origine (un autre domaine, port ou protocole) et que l'API ne l'autorise pas : le navigateur bloque alors la lecture de la réponse. La correction se fait côté serveur : l'API doit renvoyer l'en-tête Access-Control-Allow-Origin avec l'origine du front et répondre aux requêtes de pré-vérification OPTIONS. CORS n'est pas une protection de l'API : curl ou un script l'ignorent complètement (chapitre 10).

C'est quoi un JWT ?

Un JWT (JSON Web Token) est un jeton en trois parties séparées par des points : un en-tête, une charge utile qui décrit l'utilisateur et la date d'expiration, et une signature calculée avec une clé du serveur. Le client l'envoie à chaque requête dans l'en-tête Authorization: Bearer. La charge utile est seulement encodée en base64url : tout le monde peut la lire, mais personne ne peut la modifier sans invalider la signature, à condition que l'API la vérifie vraiment (chapitre 9).

Quel outil utiliser pour tester une API REST ?

En ligne de commande, curl est installé partout et suffit pour reproduire une requête ; HTTPie est plus lisible. En interface graphique, Bruno est gratuit, libre, sans compte, et range les collections dans des fichiers que tu versionnes avec ton code ; Postman est le plus connu mais son offre gratuite est limitée à un seul utilisateur depuis mars 2026. Pour des tests qui se rejouent seuls, écris des tests d'intégration, avec supertest en Node.js par exemple (chapitre 11).

Comment versionner une API REST ?

La méthode la plus répandue place le numéro de version majeure dans le chemin : /v1/fiches, puis /v2/fiches. On ne change de version que pour un changement incompatible (champ renommé ou supprimé, type modifié, route retirée) ; ajouter un champ ou une route se fait dans la version en cours. Quand une ancienne version doit disparaître, on prévient les clients avec les en-têtes Deprecation et Sunset, puis on la retire vraiment, pour ne pas laisser tourner une version oubliée (chapitre 6).

Les API REST tombent-elles à l'examen du BTS SIO ?

Oui, en option SLAM. À l'E6, tu fais évoluer en une heure une de tes réalisations, et beaucoup sont des API ou des fronts qui en consomment une. À l'écrit E7, « Cybersécurité des services informatiques », les sujets récents ont demandé pourquoi PUT et DELETE sont dangereuses, comment combiner clé d'API et jeton, comment corriger une API qui laisse lire les données des autres, et quel code de statut renvoyer (chapitre 13).