Développement sur mesure

API versioning et gestion du cycle de vie : stratégies pour faire évoluer vos API sans casser vos clients

🤖 Analyser avec l'IA

Obtenez un résumé intelligent et des insights personnalisés

L’API versioning consiste à numéroter les versions d’une API pour la faire évoluer sans casser les clients existants. Pour une API REST, quatre stratégies existent : l’URL, l’en-tête, le paramètre de requête et le type de média. Pour GraphQL, on fait évoluer le schéma et on marque les champs obsolètes avec la directive @deprecated.

Mais, qu’est-ce qu’une API (Application Programming Interface) ? C’est l’interface qui permet à deux logiciels d’échanger des données. Dès qu’un client en dépend, chaque modification devient un risque. Alors, il faut avoir les bonnes stratégies et mettre en place des règles. AquilApp peut notamment vous aider à concevoir des API que vous soyez un startup, une PME et que vous fassiez partie des grands comptes. 

Pourquoi le versioning d’API est-il critique pour votre produit ?

Une modification cassante est un changement qui oblige les clients d’une API à réécrire leur code. Vous ne contrôlez pas ces clients. Ce sont des partenaires, des applications mobiles ou des outils de vos utilisateurs.

Les applications mobiles posent un problème particulier. Vos utilisateurs mettent à jour leur application quand ils le décident. Plusieurs versions de votre application appellent donc votre API en même temps.

Le sujet touche aussi les produits en ligne. Vous voulez créer un SaaS ? Votre API devient un engagement contractuel. Il en va de même pour l’intégration logicielle avec le système d’information (SI) de vos clients.

Versioning d'API

Quelles sont les 4 stratégies de versioning d’une API REST ?

REST (Representational State Transfer) est un style d’architecture d’API fondé sur les ressources et le protocole HTTP. Il propose quatre façons d’indiquer la version.

StratégieExempleAvantageLimite
URL/v2/clientsLisible, simple à router et à mettre en cacheUne même ressource change d’adresse
En-têteX-GitHub-Api-Version: 2022-11-28URL stableTest moins direct dans un navigateur
Paramètre de requête/clients?version=2Rapide à mettre en placeRisque d’oubli, cache plus délicat
Type de médiaAccept: application/vnd.exemple.v2+jsonProche des principes RESTComplexe, peu d’outils compatibles

Sources : documentation de l’API REST GitHub, documentation de l’API Stripe, Microsoft REST API Guidelines. Synthèse AquilApp.

Nous tranchons ainsi. Choisissez l’URL pour une API publique ou destinée à des partenaires. Ensuite, sélectionnez l’en-tête daté pour une API qui évolue souvent. Stripe applique cette seconde approche avec l’en-tête Stripe-Version.

Numérotez avec le versionnage sémantique. Selon la spécification SemVer 2.0.0, le numéro majeur change pour toute modification incompatible. Seul ce dernier apparaît dans l’URL.

Le framework influence aussi la mise en œuvre. Notre comparatif Express.js vs NestJS détaille le routage par version. Notre guide sur le choix backend complète ce point.

Comment versionner une API versioning sur GraphQL ?

API versioning sur GraphQL

GraphQL est un langage de requête pour API. Ici, le client y choisit lui-même les champs qu’il reçoit. Cette souplesse change la logique de versionnage.

Selon les bonnes pratiques publiées sur graphql.org, une API GraphQL évite le versionnage classique. Elle ajoute de nouveaux champs et laisse les anciens en place. Le client ne reçoit que ce qu’il demande. Donc, l’ajout ne casse rien.

Pour retirer un champ, utilisez la directive @deprecated avec le paramètre reason. Exemple : fullName: String @deprecated(reason: « Utilisez firstName et lastName »). Mesurez ensuite l’usage de chaque champ. Vous supprimez le champ quand plus aucun client ne l’appelle.

Attention cependant aux pièges. Passer un champ de « nullable » à « non nullable » casse les clients. Changer le type d’un champ aussi.

Comment déprécier une API sans perdre vos clients ?

La déprécation est l’annonce officielle qu’une version ou une fonction sera retirée. Elle suit cinq étapes :

  1. Annoncez la déprécation dans la documentation et par e-mail.
  2. Ajoutez l’en-tête Deprecation aux réponses (RFC 9745, 2025).
  3. Mettez l’en-tête Sunset avec la date de retrait (RFC 8594, 2019).
  4. Suivez l’usage par client et contactez directement les retardataires.
  5. Retirez la version à la date annoncée, sans exception.

De plus, fixez un délai réaliste. GitHub garantit qu’une ancienne version de son API reste disponible au moins 24 mois après la sortie de la suivante. Nous recommandons au minimum 12 mois pour une API utilisée par des applications mobiles.

Quelles règles garantissent la rétrocompatibilité après une API versioning ?

Rétrocompatibilité après une API versioning

La rétrocompatibilité est la capacité d’une API à rester utilisable par les anciens clients. Les principes de Google (AIP-180) posent une règle simple : ajouter est sûr, retirer ou modifier est cassant.

Pour des changements sûrs, ajoutez :

  • Un champ optionnel dans une réponse ;
  • Un nouvel endpoint ;
  • Une valeur optionnelle en entrée.

Faites attention à aux changements suivants qui cassent les clients :

  • Supprimer ou renommer un champ ;
  • Changer le type d’une donnée ;
  • Rendre obligatoire un paramètre facultatif ;
  • Modifier un code d’erreur ou le sens d’une valeur.

Demandez aussi aux clients d’ignorer les champs inconnus. Cette règle vous laisse la liberté d’enrichir vos réponses.

Comment documenter et suivre les changements d’une API ?

OpenAPI est la spécification standard pour décrire une API REST. Elle contient un attribut deprecated: true qui signale une opération obsolète. Swagger UI affiche cette information à vos utilisateurs.

Tenez un changelog daté, avec une section « modifications cassantes » en tête. Ajoutez également un outil de comparaison comme oasdiff à votre pipeline CI/CD (Continuous Integration / Continuous Delivery). Il compare deux fichiers OpenAPI et bloque toute modification cassante non annoncée.

Cas pratique : comment gérer 3 versions d’API en production ?

Ce scénario illustratif montre une organisation type d’API versioning. Une API compte trois versions actives.

VersionStatutAction
v1DépréciéeEn-tête Sunset actif, retrait dans 6 mois
v2StableCorrectifs de sécurité et de bugs uniquement
v3CouranteNouvelles fonctions, documentation à jour

Source : scénario illustratif AquilApp.

Vous déployez un seul code pour les trois versions. Une couche de transformation adapte les réponses de v3 au format de v1 et de v2. Vous suivez chaque semaine le trafic par version. Quand v1 passe sous un seuil fixé à l’avance, vous coupez l’accès.

FAQ sur le versioning d'API

L’URL convient à la majorité des API publiques, car elle est lisible et simple à mettre en cache. L’en-tête daté convient aux API qui évoluent souvent.

Deux versions majeures suffisent : la courante et la précédente. Une troisième reste temporaire, le temps de la migration.

Non, dans la plupart des cas. Vous ajoutez des champs et vous marquez les anciens avec @deprecated.

Vous changez de version majeure à chaque modification incompatible, selon SemVer. Une simple addition compatible ne l’exige pas.

Conclusion

L’API versioning protège vos clients et votre calendrier. Donc, choisissez une stratégie claire. Annoncez chaque retrait et automatisez la détection des changements cassants. Ces règles vous permettent de faire évoluer votre produit en confiance.

Vous préparez une API ou vous devez sécuriser la vôtre ? Découvrez notre agence de développement logiciel sur mesure. Notre équipe vous accompagne dès le cadrage.

Passez à la vitesse supérieure
Nos experts vous accompagnent pour optimiser le code, alléger les fonctionnalités et intégrer les meilleures pratiques de développement mobile. Offrez à vos utilisateurs une expérience sans ralentissement.
Être accompagné

Contactez-nous

Vos coordonnées

Votre projet

Décrivez votre projet, vos objectifs et toute information utile pour mieux comprendre votre besoin.

Réponse sous 24h ouvrées — Vos données restent confidentielles.
Partagez ce contenu
ando, Author at AquilApp
En savoir plus sur l'auteur

Retrouvez d'autres articles dans la même catégorie

Turso et SQLite Edge : la nouvelle génération de bases de données distribuées en 2026

Turso database est une base de données distribuée construite sur libSQL, un fork open source de SQLite. Elle réplique vos données près des utilisateurs, ou directement dans l’application. Ainsi, elle convient aux applications Edge, mobiles hors ligne et multi-tenant. Elle ne remplace pas PostgreSQL pour les écritures intensives. De nos jours, pour vos bases de… Poursuivre la lecture Turso et SQLite Edge : la nouvelle génération de bases de données distribuées en 2026

Développement sur mesure
Outils IA pour le développement logiciel : GitHub Copilot, Cursor et productivité développeur en 2026

Les assistants de code IA accélèrent les tâches répétitives. Cependant, le gain réel varie selon le contexte. GitHub Copilot développement convient aux équipes déjà installées sur GitHub. Néanmoins, Cursor convient aux équipes qui veulent un éditeur construit autour de l’IA. Dans les deux cas, un développeur doit relire chaque ligne générée. En 2026, 84 %… Poursuivre la lecture Outils IA pour le développement logiciel : GitHub Copilot, Cursor et productivité développeur en 2026

Développement sur mesure
Stripe Connect et paiements marketplace : intégrer un système multi-vendeurs dans votre application

Stripe Connect marketplace est l’offre de Stripe. Il permet notamment à une marketplace d’encaisser un paiement, de prélever sa commission et de reverser le solde à chaque vendeur. Vous choisissez un type de compte (Standard, Express ou Custom). Puis, vous configurez la répartition des fonds et la vérification d’identité (KYC, Know Your Customer). Un prestataire… Poursuivre la lecture Stripe Connect et paiements marketplace : intégrer un système multi-vendeurs dans votre application

Développement sur mesure
Pentest d’application web et mobile : méthodologie OWASP et bonnes pratiques

Un pentest application web est un test d’intrusion. C’est une simulation d’attaque autorisée contre votre application. Il révèle les failles exploitables avant qu’un attaquant ne les trouve. La méthodologie OWASP structure ce travail en phases reproductibles pour le web et le mobile. Selon IBM (Cost of a Data Breach 2025), une violation de données coûte… Poursuivre la lecture Pentest d’application web et mobile : méthodologie OWASP et bonnes pratiques

Développement sur mesure
AquilAppAQUILAPP
275 boulevard Marcel Paul
44800 Saint Herblain
Du lundi au vendredi - 9h à 18h
Une idée de projet digital ?

AquilApp est une agence web spécialisée dans le développement d'applications web et mobiles sur-mesure. Basés à Nantes, nous intervenons dans toute la France pour accompagner les startups, PME et grands groupes dans leur transformation digitale.

Contactez-nous

Rejoignez notre newsletter

Inscrivez-vous pour recevoir nos dernières actualités et conseils en développement web et mobile.
Ce site a été créé avec <3 par AquilApp

Haut de page

Contactez-nous

Appelez-nous

WhatsApp

Prendre RDV