Introduction
Lorsque vous consultez la meteo sur votre telephone, que vous payez en ligne avec Stripe ou que vous vous connectez avec Google, vous utilisez une API (Application Programming Interface). Les API sont les intermediaires invisibles qui permettent aux applications de communiquer entre elles.
Le style d'architecture le plus repandu pour les API web est REST (Representational State Transfer), defini par Roy Fielding dans sa these de doctorat en 2000.
Qu'est-ce qu'une API
L'analogie du restaurant
Imaginez un restaurant. Vous (le client) ne pouvez pas entrer directement dans la cuisine (le serveur). Vous passez par le serveur (l'API) qui transmet votre commande a la cuisine et vous rapporte votre plat.
Dans le monde du web :
- Le client : votre application (navigateur, appli mobile)
- L'API : l'intermediaire qui recoit les requetes et renvoie les reponses
- Le serveur : la base de donnees et la logique metier
Pourquoi les API existent
Les API permettent de :
- Reutiliser des fonctionnalites : plutot que de creer votre propre systeme de paiement, utilisez l'API de Stripe
- Separer le frontend du backend : une meme API peut servir un site web, une appli mobile et un chatbot
- Partager des donnees : les API publiques permettent aux developpeurs d'acceder a des services tiers
Les principes de REST
Les ressources
En REST, tout est une ressource identifiee par une URL :
/api/articles: la collection d'articles/api/articles/42: l'article avec l'identifiant 42/api/articles/42/commentaires: les commentaires de l'article 42
Les verbes HTTP
REST utilise les methodes HTTP pour definir l'action a effectuer :
| Methode | Action | Exemple |
|---|---|---|
| GET | Lire une ressource | GET /api/articles → liste des articles |
| POST | Creer une ressource | POST /api/articles → creer un article |
| PUT | Remplacer une ressource | PUT /api/articles/42 → remplacer l'article 42 |
| PATCH | Modifier partiellement | PATCH /api/articles/42 → modifier un champ |
| DELETE | Supprimer une ressource | DELETE /api/articles/42 → supprimer l'article 42 |
Les codes de statut
Chaque reponse HTTP contient un code de statut qui indique le resultat :
- 200 OK : la requete a reussi
- 201 Created : une ressource a ete creee avec succes
- 400 Bad Request : la requete est malformee (donnees manquantes, format incorrect)
- 401 Unauthorized : authentification requise
- 403 Forbidden : authentifie mais pas autorise
- 404 Not Found : la ressource n'existe pas
- 429 Too Many Requests : limite de requetes depassee
- 500 Internal Server Error : erreur cote serveur
Le format JSON
Les API REST echangent generalement des donnees au format JSON (JavaScript Object Notation) :
{
"id": 42,
"titre": "Mon article",
"auteur": {
"nom": "Marie Dupont",
"email": "marie@exemple.fr"
},
"tags": ["web", "tutoriel"],
"publie": true
}JSON est lisible par les humains et facilement traitable par les machines.
Utiliser une API en pratique
Avec fetch en JavaScript
// GET : recuperer des articles
const response = await fetch('https://api.exemple.fr/articles');
const articles = await response.json();
console.log(articles);
// POST : creer un article
const newArticle = await fetch('https://api.exemple.fr/articles', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer votre-token-ici'
},
body: JSON.stringify({
titre: 'Nouvel article',
contenu: 'Le contenu de l'article...'
})
});Avec cURL en ligne de commande
# GET
curl https://api.exemple.fr/articles
# POST avec authentification
curl -X POST https://api.exemple.fr/articles \
-H "Content-Type: application/json" \
-H "Authorization: Bearer votre-token" \
-d '{"titre": "Nouvel article"}'Avec un outil graphique
Postman et Insomnia sont des outils populaires qui permettent de tester des API visuellement, sans ecrire de code. Ils offrent un historique des requetes, la gestion des environnements (dev, staging, production) et le partage de collections entre equipes.
L'authentification
Les cles API
La methode la plus simple : une cle unique transmise dans un en-tete HTTP :
Authorization: Api-Key votre-cle-secreteOAuth 2.0
Le standard pour l'authentification deleguee (« Se connecter avec Google »). OAuth 2.0 permet a un utilisateur d'autoriser une application tierce a acceder a ses donnees sans partager son mot de passe.
Les JSON Web Tokens (JWT)
Un JWT est un jeton signe qui contient des informations sur l'utilisateur. Il est transmis dans l'en-tete Authorization: Bearer <token> et verifie cote serveur sans interroger la base de donnees.
Les bonnes pratiques
- Versionner votre API :
/api/v1/articlespermet de faire evoluer l'API sans casser les clients existants - Paginer les resultats : ne jamais renvoyer des milliers d'elements en une seule reponse
- Documenter avec OpenAPI : le standard OpenAPI (ex-Swagger) genere une documentation interactive
- Limiter les requetes (rate limiting) : protegez votre serveur contre les abus
- Utiliser HTTPS : toujours, sans exception
Conclusion
Les API REST sont le ciment du web moderne. Comprendre leur fonctionnement vous permet d'integrer des services tiers, de construire des architectures flexibles et de collaborer efficacement entre equipes frontend et backend.