Imaginez un restaurant : vous êtes l'application cliente, le cuisinier est l'application serveur, et le serveur est l'API. Vous ne parlez pas directement au cuisinier ; vous passez commande au serveur, qui la transmet au cuisinier et vous apporte la réponse.

schéma client → API → serveur avec flèches.
2. Pourquoi les API sont essentielles pour l'intégration de données
Interopérabilité
Les API permettent à des systèmes hétérogènes (différents langages, différentes plateformes) de communiquer. Une API REST peut être appelée aussi bien par une application mobile iOS, une application web React, ou un script Python.
Abstraction
L'API cache la complexité du système sous-jacent. L'appelant n'a pas besoin de connaître la base de données, le langage ou l'infrastructure du service.
Sécurité
L'API sert de point de contrôle unique : authentification, autorisation, rate limiting, validation des entrées.
Évolutivité
Les APIs permettent de découpler les composants. On peut faire évoluer le backend indépendamment du frontend, tant que l'API reste stable.
L'API de Stripe permet à n'importe quel site e-commerce (Shopify, WooCommerce, site sur mesure) d'accepter des paiements par carte bancaire. Stripe gère la complexité des transactions bancaires ; le site appelle simplement l'API.
3. Les principaux types d'API
| Type | Protocole | Format | Cas d'usage |
|---|---|---|---|
| REST | HTTP | JSON, XML, HTML | Applications web et mobiles (standard) |
| GraphQL | HTTP | JSON | Applications complexes, over-fetching/under-fetching |
| SOAP | HTTP, SMTP, TCP | XML | Secteurs bancaire, gouvernemental (legacy) |
| gRPC | HTTP/2 | Protocol Buffers | Microservices, hautes performances |
| Webhooks | HTTP (callback) | JSON, XML | Notifications temps réel (paiement, livraison) |

Icônes des différents types d'API.
4. REST : le standard du web
REST (Representational State Transfer) est une architecture, pas un protocole. Elle repose sur 6 contraintes : client-serveur, sans état (stateless), cache, interface uniforme, système en couches, code à la demande (optionnel).
- ✅ Utilise les verbes HTTP : GET, POST, PUT, PATCH, DELETE
- ✅ Ressources identifiées par URLs (/users/123, /products)
- ✅ Sans état (stateless) : chaque requête contient toutes les informations nécessaires
- ✅ Format JSON (le plus courant) ou XML
GET https://api.example.com/users/123
Host: api.example.com
Authorization: Bearer token123
Réponse :
{
"id": 123,
"nom": "Dupont",
"email": "Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser. ",
"created_at": "2024-01-01"
}
Idéal pour : La majorité des applications web et mobiles, APIs publiques (Twitter, GitHub, Stripe).
5. GraphQL : la flexibilité
GraphQL (développé par Meta/Facebook en 2015) est un langage de requête pour les APIs. Contrairement à REST où le serveur décide quelles données renvoyer, c'est le client qui spécifie exactement ce dont il a besoin.
- ✅ Pas de over-fetching (trop de données) ni under-fetching (pas assez)
- ✅ Un seul endpoint (pas de multiplication d'URLs)
- ✅ Typage fort (schéma)
- ✅ Évolution sans versionnage (ajout de champs)
// Requête GraphQL
query {
user(id: 123) {
nom
email
commandes(limit: 5) {
date
montant
}
}
}
// Réponse (seulement les champs demandés)
{
"data": {
"user": {
"nom": "Dupont",
"email": "Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser. ",
"commandes": [...]
}
}
}
Idéal pour : Applications complexes avec des besoins de données variés, dashboards, applications mobiles.
6. SOAP : le protocole historique
SOAP (Simple Object Access Protocol) est un protocole plus ancien (1998) qui utilise XML pour l'échange de messages. Il est plus lourd que REST mais offre des fonctionnalités avancées (sécurité WS-Security, transactions ACID).
- Format XML uniquement
- Sécurité intégrée (WS-Security)
- Contrat WSDL (Web Services Description Language)
- Support des transactions (WS-AtomicTransaction)
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetUser xmlns="http://example.com/user">
<UserId>123</UserId>
</GetUser>
</soap:Body>
</soap:Envelope>
Idéal pour : Secteurs bancaires, gouvernementaux, systèmes legacy (mainframe), applications nécessitant des transactions ACID.
7. Webhooks : l'inverse des API
Les Webhooks sont l'inverse des APIs traditionnelles. Avec une API classique, le client appelle le serveur. Avec un Webhook, le serveur notifie le client quand un événement se produit (paiement réussi, livraison effectuée).
- Un client paie une commande sur votre site → Stripe envoie un webhook à votre serveur → votre serveur met à jour la base de données
- Vous vous inscrivez à une newsletter → le système envoie un webhook à votre CRM → le CRM ajoute le contact
{
"id": "evt_123",
"type": "payment_intent.succeeded",
"data": {
"object": {
"id": "pi_456",
"amount": 4999,
"currency": "eur",
"customer": "cus_789"
}
}
}
Idéal pour : Notifications temps réel, événements asynchrones, intégrations SaaS (Zapier, Make).
8. Sécurité des API
Authentification (qui êtes-vous ?)
API Keys : simples mais peu sécurisées.
JWT (JSON Web Tokens) : tokens signés, sans état.
OAuth 2.0 : délégation d'accès ("Connectez-vous avec Google").
Autorisation (qu'avez-vous le droit de faire ?)
RBAC (Role-Based Access Control) : les utilisateurs ont des rôles (admin, user).
ABAC (Attribute-Based Access Control) : basé sur des attributs (propriétaire de la ressource).
Rate Limiting (limitation de débit)
Limite le nombre de requêtes par client (ex: 1000 requêtes/heure). Protège contre les abus et les attaques DDoS.
Validation des entrées
Ne jamais faire confiance aux données client. Valider types, formats, longueurs. Protège contre les injections SQL et XSS.
- Toujours utiliser HTTPS (TLS 1.2+)
- Ne jamais exposer d'API keys dans le code client
- Documenter les modèles de menace
- Mettre en place des logs et monitoring
9. Bonnes pratiques pour concevoir une API
1. Utilisez les bons verbes HTTP
GET (lecture), POST (création), PUT (remplacement), PATCH (modification partielle), DELETE (suppression).
2. Nommez vos endpoints correctement
Utilisez des noms pluriels : /users, /products/123. Évitez les verbes dans les URLs (/getUser est redondant).
3. Versionnez votre API
Incluez la version dans l'URL (/v1/users) ou dans le header (Accept: application/vnd.api.v1+json).
4. Documentez votre API (OpenAPI / Swagger)
Une documentation interactive (Swagger UI) est indispensable pour que d'autres développeurs puissent utiliser votre API.
5. Retournez des codes HTTP appropriés
200 OK, 201 Created, 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 500 Internal Server Error.
openapi: 3.0.0
info:
title: API Utilisateurs
version: 1.0.0
paths:
/users/{id}:
get:
summary: Récupère un utilisateur
parameters:
- name: id
in: path
required: true
schema:
type: integer
responses:
'200':
description: Succès
10. FAQ — API et intégration de données
Quelle est la différence entre une API et un web service ?
Un web service est un type spécifique d'API accessible via le web (HTTP). Tous les web services sont des API, mais toutes les API ne sont pas des web services (ex: API du noyau Linux).
REST ou GraphQL : lequel choisir ?
REST : plus simple, mature, bonne utilisation du cache HTTP. Idéal pour des APIs standards.
GraphQL : plus flexible, évite le over-fetching. Idéal pour des applications complexes avec des besoins de données variés.
Qu'est-ce qu'une API RESTful ?
Une API RESTful respecte les 6 contraintes de l'architecture REST : client-serveur, sans état, cache, interface uniforme, système en couches, code à la demande (optionnel). La plupart des APIs REST actuelles sont "REST-like" (pas 100% conformes).
Comment tester une API ?
Outil recommandé : Postman (gratuit, interface graphique). Alternatives : Insomnia, curl (ligne de commande), ou des bibliothèques de test (Supertest pour Node.js).
Qu'est-ce qu'un webhook vs API ?
Une API nécessite que le client fasse une requête pour obtenir des données. Un webhook est un appel HTTP inversé : le serveur notifie le client quand un événement se produit. Les webhooks sont idéaux pour les notifications temps réel.
Quelle est la différence entre API REST et SOAP ?
REST : architecture, utilise JSON (léger), plus simple, standard du web.
SOAP : protocole, utilise XML (lourd), plus complexe, mais offre sécurité et transactions intégrées (WS-Security, WS-AtomicTransaction).
Pour explorer l'ensemble des outils et technologies en data science, IA et visualisation, consultez le pilier dédié : Outils, technologies et dataviz – guide complet.
Conclusion
Les API sont les passe-partout de l'intégration de données modernes. Que ce soit REST (le standard), GraphQL (la flexibilité), SOAP (la robustesse historique) ou les webhooks (les notifications temps réel), elles permettent aux applications de communiquer et aux données de circuler.
À retenir
- API = interface de communication entre applications
- REST : standard du web (JSON, verbes HTTP)
- GraphQL : flexible, client spécifie les données nécessaires
- SOAP : protocole historique (XML), sécurité intégrée
- Webhooks : notifications temps réel (callback)
- Sécurité : HTTPS, authentification (JWT, OAuth), rate limiting