Ressources · 33

Faire évoluer les contrats API sans perdre les clients

Décrire requêtes, réponses et erreurs, tester les versions et rendre les webhooks rejouables.

· 20 min

Ingénieurs vérifiant un contrat et des réponses API

Ce que ce guide permet

  • Écrire le contrat
  • Rendre les erreurs claires
  • Tester la compatibilité
  • Préparer le retrait

Contrôle express

  • Quels clients consomment chaque opération ?
  • Les réponses d’erreur ont-elles un type stable et un statut cohérent ?
  • Un ancien client tolère-t-il le changement ?
  • Les retries créent-ils des doublons ?
  • Comment annoncer et vérifier un retrait ?

Méthode pas à pas

  1. 01

    Inventorier les consommateurs

    Lister opérations, clients, usages, versions et responsables. Distinguer usages observés et supposés avant de modifier un champ.

    Livrable : carte des dépendances du contrat.

  2. 02

    Décrire requêtes et réponses

    Tenir une description OpenAPI avec schémas, exemples réalistes, réponses de succès et d’échec. Vérifier qu’elle reflète le service exécuté.

    Livrable : contrat versionné et tests de conformité.

  3. 03

    Stabiliser les erreurs

    Utiliser les statuts HTTP selon leur sens et, lorsque pertinent, un type de problème documenté selon RFC 9457. Ne pas divulguer de secret dans les détails.

    Livrable : catalogue d’erreurs testées.

  4. 04

    Qualifier le changement

    Examiner champs obligatoires, types, valeurs, comportements, délais et pagination. Tester les anciens clients contre la nouvelle version sur des cas représentatifs.

    Livrable : matrice de compatibilité et décision de version.

  5. 05

    Fiabiliser les notifications

    Pour les webhooks, prévoir authentification, ordre non garanti, doublons et retries. Rendre le traitement idempotent quand une répétition est possible.

    Livrable : scénario de replay et accusé de réception.

  6. 06

    Déployer avec sortie claire

    Publier notes de migration, période de coexistence et contacts. Mesurer l’usage ancien, puis retirer une version seulement après vérification des consommateurs concernés.

    Livrable : plan de migration et preuves de retrait.

Indicateurs de pilotage

IndicateurCe qu’il mesurePremière action
ContratOpérations décrites et conformes au serviceCorriger les divergences
CompatibilitéClients représentatifs testés avant changementAjouter les cas oubliés
ErreursTypes documentés sans donnée sensibleRéviser messages et schémas
MigrationUsage des versions anciennes avec propriétaireAccompagner les clients restants

Erreurs fréquentes

  • Croire qu’un numéro de version suffit à préserver la compatibilité
  • Documenter seulement les réponses 200
  • Envoyer une trace interne ou un secret dans une erreur
  • Supposer qu’un webhook arrive une seule fois et dans l’ordre

Questions fréquentes

OpenAPI remplace-t-il un test ?

Non. La description doit être comparée aux réponses réelles et aux besoins des consommateurs.

Faut-il toujours créer une nouvelle version ?

Non. La décision dépend de l’effet sur les clients et du comportement du contrat ; les changements incompatibles exigent un plan explicite.

Pourquoi des erreurs typées ?

Elles donnent aux clients une façon stable de distinguer les problèmes et de choisir une action.

Références officielles