Technique

API

Interface de programmation permettant à deux applications de communiquer entre elles de manière standardisée. 83% des développeurs en utilisent quotidiennement.

API (Application Programming Interface) est une interface logicielle qui permet à deux applications de communiquer entre elles de manière standardisée. Une API définit les requêtes possibles, les formats de données échangées, et les règles d'authentification. Elle agit comme un contrat entre le fournisseur de service et le consommateur, garantissant interopérabilité et évolutivité. Les API sont le fondement de l'architecture moderne : 83% des développeurs en utilisent quotidiennement et les entreprises exposent en moyenne 15 800 API selon Postman 2024.

Définition technique

Architecture REST

Les API REST (Representational State Transfer) représentent 68% des API en production. Elles utilisent le protocole HTTP avec des verbes standard : GET (lecture), POST (création), PUT (remplacement complet), PATCH (mise à jour partielle), DELETE (suppression). Les ressources sont identifiées par des URLs (ex: /users/123) et les réponses typiquement en JSON (92% des API) ou XML.

REST impose 6 contraintes architecturales : client-serveur (séparation préoccupations), sans état (chaque requête autonome), cacheable (optimisation performance), interface uniforme (URLs standardisées), système en couches, code à la demande (optionnel). Cette architecture garantit scalabilité horizontale et permet de gérer des millions de requêtes par seconde.

Alternatives architecturales

GraphQL (Facebook, 2015) permet aux clients de spécifier exactement les champs souhaités via un langage de requête, éliminant le sur-fetching REST. Adopté par GitHub, Shopify et Netflix pour leurs API publiques. gRPC (Google) utilise Protocol Buffers et HTTP/2 pour communication binaire haute performance : latence 7-10x inférieure à REST, idéal pour microservices internes.

Les WebSockets maintiennent une connexion bidirectionnelle permanente pour temps réel (chat, notifications push). Les Webhooks envoient des notifications HTTP POST lors d'événements (paiement validé, nouveau commit Git). SOAP (legacy) utilise XML sur HTTP avec contrat WSDL strict, encore présent dans la finance et santé pour conformité réglementaire.

Standards et normes

OpenAPI Specification (OAS)

Standard industriel pour documenter les API REST, maintenu par l'OpenAPI Initiative (Linux Foundation). OAS 3.1 (2021) décrit endpoints, paramètres, schémas de requêtes/réponses, authentification et exemples dans un format YAML/JSON machine-readable. Adopté par AWS, Microsoft Azure, Google Cloud pour leurs API publiques.

Les outils générateurs (Swagger Codegen, OpenAPI Generator) produisent automatiquement clients SDK dans 50+ langages et documentation interactive. 78% des entreprises documentent leurs API avec OAS selon SmartBear 2024. La spécification garantit contrats API versionés et tests automatisés via validation de schémas.

JSON Schema et JSON:API

JSON Schema valide la structure des payloads JSON avec types, contraintes et descriptions. JSON:API standardise la pagination, le filtrage, le tri et l'inclusion de relations dans les réponses REST, réduisant les ambiguïtés de design. Les conventions incluent data, included, meta et links comme clés racines.

Enjeux actuels et chiffres clés

Économie des API

Le marché des API managées (gateways, portails développeurs, analytics) croît de 32% annuellement. AWS API Gateway traite 2+ trillions de requêtes mensuelles. Stripe génère 90% de son revenu via son API (1 milliard de requêtes/jour). Les API-first companies (Twilio, Stripe, Algolia) affichent une valorisation moyenne 50% supérieure aux concurrents traditionnels.

Performance et scalabilité

La latence médiane d'une API REST bien optimisée est de 50-100ms (p95 < 200ms). Le caching HTTP natif avec ETag et Cache-Control réduit la charge de 40-60%. Les CDN API (Cloudflare, Fastly) distribuent les endpoints mondialement avec latence < 50ms. Netflix déploie 4000 changements API par jour sans downtime via canary deployments.

Sécurité et gouvernance

76% des organisations ont subi une faille de sécurité API en 2023 (Salt Security). Les attaques BOLA (Broken Object Level Authorization) représentent 43% des incidents : accès non autorisé aux ressources d'autres utilisateurs via manipulation d'IDs (/users/123/users/124). Le rate limiting intelligent (par IP, token, endpoint) bloque 95% des abus.

Applications pratiques

Intégrations e-commerce et paiements

Stripe expose 400+ endpoints REST traitant 1 milliard de requêtes quotidiennes. Architecture : webhooks pour notifications asynchrones (paiement accepté/refusé), idempotency keys pour transactions sûres, versioning sur 12 versions simultanées. Les marchands intègrent paiements en < 1 journée via SDKs 7 langages et Stripe Elements (UI components).

PayPal, Adyen et Mollie proposent API similaires avec certification PCI DSS Level 1. Les taux de commission varient : 1.4-2.9% + 0.25€ par transaction selon volumes et géographies. L'authentification 3D Secure 2 est obligatoire UE depuis septembre 2019 (directive PSD2).

Plateformes SaaS et intégrations

Salesforce (200+ API) intègre CRM, marketing automation et analytics via REST, SOAP et Bulk API pour traitement batch. Les API Composite permettent 25 sous-requêtes en 1 appel réseau. OAuth 2.0 avec refresh tokens garantit sécurité sans ressaisie credentials. Les webhooks Salesforce notifient systèmes tiers lors de création/modification d'opportunités.

Slack API gère 20 millions de requêtes/minute avec rate limits adaptatifs : 1 req/sec par défaut, bursts autorisés. Les Slack Apps utilisent Events API (webhooks temps réel) et Web API (200+ méthodes) pour automatiser workflows. Microsoft Graph API unifie l'accès à Office 365, Teams, SharePoint et OneDrive via un endpoint unique.

Microservices et architecture distribuée

Uber orchestre 2200+ microservices communicant via API internes (gRPC pour latence critique, REST pour services métiers). L'API Gateway central (Golang) route 1 million requêtes/seconde avec circuit breakers et retry logic. Service mesh (Envoy) gère TLS mutuel, observabilité distribuée (OpenTelemetry) et canary deployments.

Amazon utilise 1000+ API publiques (AWS) et 100 000+ API internes. La règle "API-first" impose documentation OpenAPI avant implémentation. Netflix encapsule 500+ microservices derrière une API GraphQL fédérée (Apollo Federation) agrégant données de multiples sources en 1 requête.

Standards et spécifications

RFC 9110 (HTTP Semantics)

Spécification officielle du protocole HTTP/1.1 pour les API REST

OpenAPI Specification 3.1

Standard de documentation et conception des API REST

JSON:API

Convention pour structurer les réponses JSON des API REST

Questions fréquentes

Quelle est la différence entre REST et GraphQL ?

REST expose plusieurs endpoints fixes (ex: /users, /posts), tandis que GraphQL centralise les requêtes sur un seul endpoint avec une requête structurée. REST peut entraîner du sur-fetching (données non utilisées téléchargées) ou du sous-fetching (multiples requêtes nécessaires).

Selon le Postman State of the API Report 2024, 68% des développeurs utilisent REST pour sa simplicité et sa maturité, contre 23% pour GraphQL dans les architectures complexes nécessitant une flexibilité accrue des requêtes.

Comment sécuriser une API ?

Les méthodes de sécurisation incluent : HTTPS obligatoire (chiffrement TLS 1.3), authentification par API Keys (simple mais limité), OAuth 2.0 (autorisation déléguée standard), JWT (tokens stateless auto-contenus), et rate limiting (limitation 1000 req/h par défaut).

L'OWASP API Security Top 10 2023 identifie les vulnérabilités critiques : Broken Object Level Authorization (BOLA, 43% des failles), authentification cassée, exposition excessive de données, et absence de limitation de ressources. Les API bien sécurisées implémentent également la validation stricte des entrées et le monitoring des anomalies.

Qu'est-ce qu'une API publique vs privée ?

Une API publique est accessible à tous les développeurs externes (ex: Google Maps, Stripe, Twitter API) avec documentation publique et authentification par clé. Une API privée est réservée aux systèmes internes de l'entreprise, sans exposition externe.

Les API partenaires (partner APIs) sont un entre-deux : accessibles uniquement à des partenaires commerciaux spécifiques avec accords contractuels. Selon Postman 2024, 45% des API sont privées (usage interne), 35% partenaires (B2B), et 20% publiques (développeurs tiers).

Comment versionner une API ?

Trois approches principales : versioning dans l'URL (/v1/users, /v2/users), via header HTTP (Accept: application/vnd.api.v2+json), ou par paramètre de requête (?version=2).

Le versioning URL est le plus répandu (76% des API selon Nordic APIs 2024) pour sa simplicité et sa visibilité. Les versions majeures cassent la compatibilité (breaking changes), les mineures ajoutent des fonctionnalités (backward compatible). Stripe maintient 12 versions simultanées avec dépréciation progressive sur 18 mois.

Ressources et documentation