Versionner et déprécier des intégrations sans casser vos clients
Comment versionner et déprécier des intégrations sans casser vos clients. Stratégies de version, avis de dépréciation, fenêtres de migration et la communication qui garde les partenaires sur vous.
Le moyen le plus rapide de perdre un partenaire que vous avez mis des mois à gagner est de casser son intégration sans prévenir. Pas avec une mauvaise fonctionnalité ou une réponse lente, mais avec un changement discret du nom d'un champ, une règle de validation plus stricte, ou un endpoint supprimé qui marchait hier et renvoie une erreur aujourd'hui. L'intégration du partenaire tombe, ses clients le remarquent avant lui, et la confiance bâtie au fil d'un long cycle de vente s'évapore le temps de lire une trace de pile. Le versionnage est la façon de continuer à faire évoluer votre API sans jamais mettre un partenaire dans cette position.
Ce n'est pas un problème qu'on évite en ne changeant jamais rien. Toute API qui vit assez longtemps doit changer : nouveaux champs, meilleurs défauts, erreurs corrigées, fioritures supprimées. La question n'est jamais de savoir si vous changerez le contrat, seulement si vous le ferez d'une manière qui laisse à ceux qui ont construit sur vous le temps de suivre. Un bon versionnage est une promesse à vos partenaires que le changement sera prévisible, annoncé et surmontable. Ce guide couvre les stratégies pour versionner une surface d'intégration, comment rédiger un avis de dépréciation qui atteint vraiment les bonnes personnes, et comment mener une fenêtre de migration qui se termine avec tout le monde migré plutôt qu'avec la moitié de vos partenaires en feu.
Il fait paire avec notre guide API partner-ready, où un changelog et une politique de versionnage font partie de ce que vérifient les ingénieurs partenaires avant de s'engager. Cet article approfondit la moitié versionnage et dépréciation de cette histoire.
L'essentiel en 60 secondes
- Les changements cassants sont l'ennemi, pas tous les changements. Les changements additifs, nouveaux champs, nouveaux endpoints, nouveaux paramètres optionnels, sont sûrs. Supprimer ou renommer ce dont un partenaire dépend, voilà ce qui les casse.
- Choisissez une stratégie de versionnage et appliquez-la avec constance : versions dans le chemin de l'URL, versions par en-tête, ou versions par date ont chacune leurs compromis, mais la règle cardinale est de ne jamais changer le sens d'une version existante.
- Suivez un contrat clair sur ce que signifie un numéro de version. Le versionnage sémantique vous donne un vocabulaire partagé pour « c'est sûr » par opposition à « ça va vous casser ».
- Une dépréciation est un processus, pas une annonce. Elle a un avis, une fenêtre de migration, des rappels, et une date de retrait, avec de la télémétrie derrière chaque étape.
- Les fenêtres de migration se mesurent en mois, pas en semaines, pour tout ce que les partenaires font tourner en production. Assez longues pour qu'une équipe partenaire occupée intègre le travail dans une feuille de route réelle.
- Communiquez sur plus d'un canal. Une seule entrée de changelog n'atteint pas l'ingénieur qui a construit l'intégration il y a deux ans et ne regarde jamais votre changelog.
- Suivez qui est encore sur l'ancienne version et contactez les retardataires directement avant d'éteindre quoi que ce soit.
Cassant ou non cassant : la distinction qui pilote tout
Avant toute stratégie, posez bien la distinction de base, car elle détermine quand vous avez même besoin d'une nouvelle version. Un changement est non cassant si toute intégration existante continue de fonctionner sans que personne ne touche son code. Un changement est cassant s'il force un partenaire à changer son code pour continuer à fonctionner. Toute la discipline du versionnage consiste à isoler les changements cassants pour qu'ils n'atterrissent jamais sur un partenaire par surprise.
Ces changements sont sûrs à livrer dans une version existante, car un client correctement construit ignore ce qu'il n'attend pas :
- Ajouter un nouveau champ à une réponse. Les clients existants lisent les champs qu'ils connaissent et sautent le reste.
- Ajouter un nouveau paramètre de requête optionnel. Les clients qui l'omettent obtiennent l'ancien comportement.
- Ajouter un nouvel endpoint ou un nouveau type d'événement. Personne ne dépend de quelque chose qu'il n'a jamais appelé.
- Ajouter une nouvelle valeur optionnelle à une énumération, tant qu'on n'a pas promis aux anciens clients un ensemble exhaustif.
Ces changements sont cassants, et ils nécessitent une nouvelle version ou une longue migration :
- Supprimer ou renommer un champ, un endpoint ou un paramètre. Tout ce qu'un client lit ou envoie peut casser s'il bouge.
- Changer le type ou le format d'un champ, comme transformer une chaîne en objet ou changer un format de date.
- Rendre un paramètre optionnel obligatoire, ou durcir la validation pour que des requêtes auparavant acceptées échouent désormais.
- Changer une valeur par défaut ou le sens d'un champ existant. C'est le genre le plus dangereux, car il casse les clients en silence, sans erreur, juste un comportement faux.
| Changement | Cassant ? | Que faire |
|---|---|---|
| Ajouter un champ de réponse | Non | Le livrer dans la version actuelle |
| Ajouter un paramètre de requête optionnel | Non | Le livrer dans la version actuelle |
| Ajouter un endpoint ou un type d'événement | Non | Le livrer dans la version actuelle |
| Supprimer ou renommer un champ | Oui | Nouvelle version, déprécier l'ancienne |
| Changer le type ou le format d'un champ | Oui | Nouvelle version, déprécier l'ancienne |
| Durcir la validation ou rendre un champ obligatoire | Oui | Nouvelle version, ou une longue fenêtre annoncée |
| Changer un défaut ou le sens d'un champ | Oui, et silencieux | Nouvelle version, communiquer fort |
La règle qui prévient la plupart des désastres est simple : ne jamais changer le sens d'une version existante. Une fois que les partenaires construisent sur la version un, la version un continue de se comporter exactement comme elle l'a toujours fait, pour toujours ou jusqu'à ce que vous la retiriez sur un calendrier annoncé. Le nouveau comportement va dans de nouvelles versions ou dans des changements additifs auxquels personne n'a à réagir.
Stratégies de version : URL, en-tête et par date
Il y a trois façons courantes d'exprimer une version, et des équipes raisonnables divergent sur la meilleure. Ce qui compte plus que le choix, c'est la constance et une règle claire sur ce qui déclenche une nouvelle version.
Versionner dans le chemin de l'URL. La version fait partie de l'adresse, comme /v1/contacts puis plus tard /v2/contacts. C'est le plus visible et le plus facile à raisonner pour un partenaire : la version qu'il utilise est là dans chaque requête, et changer est un acte évident et délibéré. L'inconvénient est qu'une montée de version majeure touche tous les chemins, ce qui pousse les équipes vers des sauts de version grands et peu fréquents plutôt que petits. C'est le choix le plus courant pour les API destinées aux partenaires précisément parce qu'il est difficile à utiliser par accident.
Versionner dans un en-tête. Le client envoie une version dans un en-tête de requête, et l'URL reste propre. Cela garde les adresses de ressources stables et permet de versionner plus finement, mais c'est moins découvrable : un partenaire qui débogue une requête ne verra pas la version sans inspecter les en-têtes, et un en-tête par défaut oublié est une catégorie de bug subtil. Cela convient aux API à nombreuses ressources où le versionnage par chemin serait peu maniable.
Versions par date. Le client épingle une date, comme 2026-06-01, souvent via un en-tête ou un réglage de compte, et obtient l'API telle qu'elle se comportait à cette date. Les nouveaux changements arrivent sous de nouvelles versions datées, et un partenaire monte de version en avançant sa date épinglée et en testant. Cela fait de chaque changement, aussi petit soit-il, une version à laquelle un partenaire peut adhérer délibérément, ce qui est excellent pour une API qui évolue souvent. Le coût est opérationnel : vous maintenez des couches de transformation qui peuvent servir un comportement daté plus ancien, ce qui est un vrai travail d'ingénierie.
| Stratégie | Visibilité | Granularité | Coût de maintenance | Bon cas |
|---|---|---|---|---|
| Chemin d'URL | Élevée, dans chaque requête | Grossière, versions majeures | Modéré | La plupart des API partenaires |
| En-tête | Faible, cachée dans les en-têtes | Fine | Modéré | API à nombreuses ressources |
| Par date | Moyenne, une date opt-in | Très fine | Plus élevé | API à évolution rapide |
Quel que soit votre choix, documentez-le comme une politique, pas comme une tradition orale. Un ingénieur partenaire devrait pouvoir lire une seule page qui dit comment vous versionnez, ce qui compte comme un changement cassant, combien de temps vivent les anciennes versions, et où les dépréciations sont annoncées. Cette page fait partie du fait d'être partner-ready, et son absence est quelque chose que les ingénieurs partenaires remarquent et intègrent dans leur estimation.
Ce qu'un numéro de version devrait promettre
Une version n'est utile que si tout le monde s'accorde sur le sens de ses parties. La convention largement adoptée est le versionnage sémantique, qui structure une version en majeur.mineur.patch et assigne à chaque partie un sens précis : une montée majeure signale un changement cassant, une montée mineure ajoute une fonctionnalité de façon rétrocompatible, et un patch corrige un bug sans changer le contrat. La spécification complète est publiée sur semver.org, et l'adopter vous donne, à vous et à vos partenaires, un vocabulaire partagé pour que « nous publions la 2.0 » porte une information réelle et convenue plutôt que des impressions marketing.
La valeur pratique pour une surface d'intégration est qu'un partenaire peut lire un changement de version et savoir, avant de lire une seule ligne de notes de version, s'il est obligé de faire quoi que ce soit. Une publication mineure ou patch signifie qu'il peut monter de version librement. Une publication majeure signifie qu'il y a un travail de migration et une fenêtre pour le faire. Cette prévisibilité est elle-même une fonctionnalité. C'est la différence entre un partenaire qui monte de version sur votre calendrier et un partenaire qui gèle sur une ancienne version parce qu'il ne fait plus confiance au fait que votre « petite mise à jour » ne le cassera pas.
Même si vous ne présentez pas un numéro en trois parties aux partenaires, adoptez sa discipline en interne. Les catégories, cassant, additif, correctif, sont exactement les catégories qui décident si un changement nécessite une nouvelle version et une dépréciation, ou peut être livré discrètement à tous. Bien faire cette classification au moment du changement est ce qui empêche les changements cassants de s'infiltrer dans une version que les partenaires croyaient stable. Notre guide conception des erreurs d'API couvre la discipline connexe de changer les réponses d'erreur avec soin, car les formes d'erreur font aussi partie du contrat et un corps d'erreur changé discrètement casse les clients qui le parsent.
La dépréciation est un processus, pas une annonce
Décider de retirer quelque chose d'ancien est la partie facile. Le faire sans casser personne est un processus à plusieurs étapes, chacune existant parce que la sauter laisse certains partenaires en plan.
1. Annoncez la dépréciation avec une date de retrait. Au moment où vous décidez de retirer une version ou un endpoint, dites-le, et engagez-vous sur une date précise à laquelle il cessera de fonctionner. Une dépréciation sans date est ignorée, car il n'y a pas d'échéance autour de laquelle planifier. Une date la transforme en élément de feuille de route.
2. Signalez la dépréciation dans les réponses elles-mêmes. Au-delà du changelog, marquez les réponses dépréciées de façon programmatique pour que la supervision d'un partenaire puisse l'attraper. L'en-tête HTTP Sunset, défini dans la RFC 8594, porte la date à laquelle une ressource cessera de répondre, et un en-tête Deprecation peut signaler qu'un endpoint est en voie de disparition. Un partenaire qui journalise ceux-ci est averti par ses propres systèmes, même si aucun humain n'a lu votre annonce.
3. Fournissez un chemin de migration avant de lancer le compte à rebours. Ne dépréciez jamais la version un tant que la version deux n'existe pas, n'est pas documentée, et qu'un partenaire ne peut pas réellement y migrer. Déprécier quelque chose sans remplacement prêt, c'est juste dire aux partenaires que leur intégration va casser sans moyen de l'empêcher. Le guide de migration, ce qui a changé, quoi faire, avec des exemples, devrait être livré avec la dépréciation, pas après.
4. Rappelez, en escaladant à l'approche de la date. Une annonce ne suffit pas. Envoyez des rappels sur un calendrier, et rendez-les plus directs à mesure que le retrait approche : un avertissement à l'annonce, un rappel à mi-parcours, un plus urgent un mois avant, et un dernier avertissement la dernière semaine. Chaque rappel devrait dire exactement ce qui cessera de fonctionner et renvoyer au guide de migration.
5. Retirez, et ayez un plan de repli. Le jour J, éteignez, mais surveillez de près et soyez prêt à prolonger si la télémétrie montre qu'un nombre significatif de partenaires est encore sur l'ancienne version. Un retrait qui met à terre trois grands partenaires parce qu'ils ont manqué tous les avis est un pire résultat qu'une prolongation de deux semaines. Le but est la migration, pas une échéance dure pour elle-même.
| Étape | Objectif | Sans elle |
|---|---|---|
| Annoncer avec une date | Donner aux partenaires une échéance à planifier | La dépréciation est ignorée |
| Signaler dans les réponses | Laisser la supervision partenaire l'attraper automatiquement | Seuls les lecteurs de changelog l'apprennent |
| Livrer le chemin de migration d'abord | Rendre le passage réellement possible | Partenaires en plan sans remplacement |
| Rappels en escalade | Atteindre ceux qui ont manqué le premier avis | Les partenaires tardifs sont surpris |
| Retrait avec plan de repli | Éviter de mettre à terre les retardataires | Une date propre devient un incident |
Quelle durée pour une fenêtre de migration ?
La réponse honnête est plus longue que vous ne le voudriez. Du côté du partenaire, migrer une intégration est un travail non planifié qui entre en concurrence avec sa propre feuille de route, et l'ingénieur qui l'a construite a peut-être changé d'équipe ou d'entreprise. Une fenêtre qui semble généreuse depuis votre entreprise paraît souvent serrée depuis la sienne.
Quelques repères qui tiennent :
- Mesurez les fenêtres de migration tournées vers la production en mois, pas en semaines. Tout ce que les partenaires font tourner en production pour de vrais clients mérite une fenêtre assez longue pour entrer dans un cycle de planification normal. Beaucoup de plateformes matures donnent six mois ou plus pour les changements cassants majeurs, et cette durée est une fonctionnalité, pas une faiblesse.
- Adaptez la fenêtre au rayon d'impact. Supprimer un champ optionnel obscur que presque personne n'utilise est d'une autre magnitude que changer le flux d'authentification dont dépend chaque intégration. Les changements plus grands et plus centraux méritent des fenêtres plus longues et une communication plus forte.
- Faites tourner les deux versions en parallèle pendant toute la fenêtre. L'ancienne et la nouvelle version devraient toutes deux fonctionner, côte à côte, pendant toute la période de migration. C'est ce qui permet à un partenaire de migrer à son rythme et de revenir en arrière si sa migration heurte un écueil. Le fonctionnement en parallèle est le coût de ne pas casser les gens, et il vaut la peine d'être payé.
- Ne lancez pas le compte à rebours tant que le remplacement n'est pas solide. La fenêtre commence quand les partenaires peuvent réellement migrer, ce qui veut dire que la nouvelle version est documentée, stable, et ne change pas elle-même sous eux. Une fenêtre qui chevauche une nouvelle version encore mouvante est plus courte qu'elle n'en a l'air.
La préoccupation de limitation mérite une note. Si une migration implique que des partenaires relancent de gros backfills sur la nouvelle version, attendez-vous à un pic de charge, et assurez-vous que votre limitation de débit le gère avec grâce plutôt que d'accueillir un partenaire en migration avec un mur de réponses 429 Too Many Requests. Une fenêtre de migration est le mauvais moment pour surprendre un partenaire avec des limites qu'il n'a jamais atteintes.
Communiquez pour que la bonne personne l'entende vraiment
La dépréciation la plus soigneusement planifiée échoue si l'annonce n'atteint pas la personne capable d'agir dessus. L'ingénieur qui a construit l'intégration il y a deux ans ne lit pas votre changelog chaque matin, et le partner manager qui reçoit votre e-mail ne sait peut-être pas laquelle des intégrations de son entreprise est touchée. Atteindre la bonne personne est un problème multicanal.
- Changelog et docs. Le système de référence. Chaque dépréciation y vit avec sa date et son guide de migration, mais traitez ceci comme le plancher, pas tout l'effort.
- E-mail direct aux propriétaires d'intégration. Si vous savez quels comptes utilisent la version touchée, envoyez un e-mail aux contacts techniques de ces comptes précisément. Un « votre intégration utilise un endpoint qui se retire à cette date » ciblé bat toute diffusion générale.
- Signaux dans les réponses. Les en-têtes
SunsetetDeprecationatteignent l'intégration elle-même, donc la journalisation et l'alerte d'un partenaire peuvent faire remonter l'avertissement même quand aucun humain n'a lu l'e-mail. C'est le canal qui attrape l'intégration silencieuse et de longue durée. - Avis dans le tableau de bord ou le portail. Si les partenaires ont un tableau de bord développeur, faites-y remonter les dépréciations actives, idéalement cadrées sur les versions que ce partenaire utilise réellement.
- Contact direct des retardataires. Près de la date de retrait, regardez qui appelle encore l'ancienne version et contactez-le directement, en tête-à-tête. C'est l'étape qui prévient l'incident post-retrait, et elle n'est possible que si vous avez la télémétrie pour savoir qui ils sont.
Ce dernier point dépend de l'instrumentation. Vous devez savoir, à tout instant, combien de trafic reçoit chaque version et quels partenaires sont en retard. Sans cela, vous retirez à l'aveugle, en espérant que personne d'important ne dépende encore de ce que vous êtes sur le point de retirer. Suivre l'adoption et l'usage par version est la même discipline que nous couvrons dans les métriques d'adoption des intégrations, appliquée à la dimension version : vous ne pouvez pas retirer en sécurité ce que vous ne pouvez pas voir.
Le versionnage à l'échelle d'un portefeuille de partenaires
À mesure que votre surface d'intégration grandit, le versionnage cesse d'être une décision par endpoint et devient une politique de portefeuille. Les partenaires qui construisent sur plusieurs de vos API, ou qui utilisent plusieurs de vos connecteurs, devraient rencontrer un modèle de versionnage cohérent, pas un schéma différent et une cadence de dépréciation différente pour chaque surface. Un partenaire qui a appris comment vous versionnez un produit ne devrait pas avoir à le réapprendre pour le suivant.
Cette cohérence fait partie du fait de traiter vos intégrations comme un système conçu plutôt que comme un tas de projets indépendants. Elle nourrit aussi la confiance qui rend les partenaires prêts à construire sur vous en premier lieu. Une plateforme avec une politique de versionnage publiée, des fenêtres de migration généreuses, et un historique de n'avoir jamais cassé personne sans prévenir est celle que les ingénieurs recommandent en interne. Une plateforme qui a déjà cassé des intégrations, même une fois, reçoit une prime de risque permanente dans chaque estimation future. La fiabilité que vous mettez dans votre versionnage est une réputation que vous dépensez, ou économisez, à chaque conversation partenaire ensuite, ce qui est le fil conducteur de notre guide API partner-ready.
Erreurs fréquentes, et comment les corriger
Changer le sens d'une version existante. La correction : traitez une version livrée comme figée. Le nouveau comportement va dans des changements additifs ou une nouvelle version, jamais comme une redéfinition discrète de quelque chose sur quoi les partenaires ont déjà construit. Les changements de sens silencieux sont le pire genre parce qu'ils cassent les clients sans erreur.
Déprécier sans chemin de migration prêt. La correction : livrez le remplacement, sa documentation, et un guide de migration avant que le compte à rebours de dépréciation commence. Annoncer un retrait sans nulle part où aller, c'est juste planifier une panne pour vos partenaires.
Des fenêtres de migration mesurées en semaines. La correction : donnez aux changements cassants tournés vers la production des mois, adaptés au rayon d'impact, avec les deux versions tournant en parallèle tout du long. Les partenaires ont besoin d'espace pour insérer un travail de migration non planifié dans une feuille de route réelle.
Annoncer une fois, sur un seul canal. La correction : utilisez le changelog, l'e-mail ciblé, les en-têtes Sunset et Deprecation dans les réponses, les avis du tableau de bord, et le contact direct des retardataires. L'ingénieur qui doit agir ne verra peut-être jamais votre changelog.
Retirer sans savoir qui est encore sur l'ancienne version. La correction : instrumentez l'usage par version, surveillez l'adoption avancer, et contactez les irréductibles restants directement avant la date. Un retrait mené à l'aveugle est un incident qui attend son déclencheur.
Cacher la dépréciation seulement dans la prose. La correction : signalez-la de façon programmatique avec les en-têtes Sunset et Deprecation pour que la supervision partenaire puisse l'attraper. Les avertissements lisibles par machine atteignent les intégrations que personne ne surveille activement.
FAQ
Qu'est-ce qui compte comme un changement cassant dans une API ? Tout changement qui force un client existant à modifier son code pour continuer à fonctionner : supprimer ou renommer un champ, un endpoint ou un paramètre ; changer un type ou un format ; durcir la validation ; rendre un champ optionnel obligatoire ; ou changer un défaut ou le sens d'un champ existant. Les changements additifs comme de nouveaux champs ou de nouveaux endpoints ne sont pas cassants.
Faut-il versionner dans l'URL ou dans un en-tête ? Les deux marchent ; choisissez-en un et appliquez-le avec constance. Le versionnage par chemin d'URL est le plus visible et le plus difficile à utiliser par accident, ce qui est pourquoi il est courant pour les API partenaires. Le versionnage par en-tête et par date permet une granularité plus fine au prix de la découvrabilité. Le choix compte moins que documenter votre politique et ne jamais redéfinir une version existante.
Quelle durée pour une fenêtre de dépréciation ou de migration ? Pour tout ce que les partenaires font tourner en production, mesurez-la en mois, pas en semaines, adaptée à quel point le changement est perturbateur. Beaucoup de plateformes matures donnent six mois ou plus pour les changements cassants majeurs, font tourner les deux versions en parallèle pendant toute la fenêtre, et ne lancent le compte à rebours qu'une fois qu'un remplacement stable et un guide de migration existent.
Comment dire aux partenaires qu'un endpoint est déprécié ? Utilisez plusieurs canaux : une entrée de changelog datée avec un guide de migration, les en-têtes HTTP Sunset et Deprecation pour que leur supervision l'attrape, un e-mail ciblé aux contacts techniques des comptes touchés, des avis de tableau de bord, et un contact direct de quiconque est encore sur l'ancienne version à l'approche de la date.
Qu'est-ce que l'en-tête Sunset ? L'en-tête de réponse HTTP Sunset, défini dans la RFC 8594, communique la date et l'heure auxquelles une ressource devrait cesser de répondre. Le renvoyer sur les endpoints dépréciés permet aux propres systèmes d'un partenaire de détecter et d'alerter sur la suppression à venir sans que personne ne lise votre annonce.
Puis-je juste garder l'ancienne version en service pour toujours au lieu de déprécier ? Vous le pouvez un temps, mais chaque version vivante est une surface de maintenance, de sécurité et de test, et les anciennes versions s'accumulent. Déprécier sur un calendrier annoncé et généreux, avec une communication complète, est la façon de retirer ce coût sans casser personne. Le but est un retrait maîtrisé, pas un support indéfini de tout ce que vous avez livré.
Comment savoir s'il est sûr de retirer une version ? Instrumentez le trafic par version pour voir combien de requêtes, et quels partenaires, en dépendent encore. Quand l'usage est tombé à un petit ensemble d'irréductibles identifiables que vous avez contactés directement, c'est sûr. Retirer sans cette télémétrie est une supposition, et la supposition qui se trompe devient un incident.
Pour aller plus loin
- Versionnage sémantique pour un vocabulaire partagé qui dit aux partenaires si une publication est sûre ou cassante.
- RFC 8594, l'en-tête HTTP Sunset pour signaler la date de retrait d'une ressource dans la réponse elle-même.
- L'OpenAPI Initiative pour décrire chaque version de votre API dans une spécification que les partenaires peuvent comparer et construire dessus.
- MDN sur 429 Too Many Requests pour gérer les pics de charge qu'une migration peut créer.
En bref
Vous changerez votre API ; la seule question est de savoir si les partenaires y survivent. Isolez les changements cassants des additifs, car les changements additifs se livrent librement et les cassants nécessitent une nouvelle version. Choisissez une stratégie de versionnage, chemin d'URL, en-tête ou par date, et appliquez-la avec constance, et ne changez jamais le sens d'une version sur laquelle les partenaires ont déjà construit. Traitez la dépréciation comme un processus : annoncez avec une date de retrait, signalez-la dans les réponses avec les en-têtes Sunset et Deprecation, livrez le chemin de migration d'abord, rappelez sur un calendrier en escalade, et ne retirez qu'après avoir fait migrer les retardataires. Rendez les fenêtres de migration longues de plusieurs mois, faites tourner les deux versions en parallèle, et instrumentez l'usage pour toujours savoir qui est encore sur l'ancienne version.
Faites cela et les partenaires continuent de construire sur vous avec confiance, parce qu'ils ont confiance que le changement sera prévisible et surmontable. Sautez-le et la première casse surprise apprend à chaque partenaire à traiter votre plateforme comme un risque, une réputation qui vous coûte à chaque affaire ensuite.
Si vous voulez de l'aide pour concevoir une politique de versionnage et de dépréciation qui vous laisse continuer à livrer sans casser les partenaires que vous avez travaillé à gagner, c'est exactement à cela que sert un Partner Audit. Nous examinons votre produit, votre API et votre potentiel partenaire, puis définissons quoi construire, qui approcher et comment livrer.