Pourquoi une stratégie de versionnage d'API est importante

Azure API Management

Fiodar Sazanavets

Senior Software Engineer at Microsoft

Introduction au versionnage d'API

Introduction au versionnage

Azure API Management

Notions clés du versionnage d'API

Analogie de versionnage

  • Utilisé quand des changements majeurs perturberaient les usagers
  • Pendant que la nouvelle ligne est construite, on maintient l'ancienne

  • Les révisions sont comme la maintenance de la même ligne

    • Réparer les rails, ajouter de la signalétique, lisser le trajet
  • Dans APIM :

    • Les versions vivent dans un ensemble de versions
    • Les révisions permettent d'éditer, tester et marquer une comme courante
Azure API Management

Indiquer la version

  • Trois stratégies d'indication de version sont prises en charge :
    • Version déclarée dans le chemin d'URL
    • Version spécifiée dans l'en-tête de requête
    • Version spécifiée dans la chaîne de requête URL
  • La stratégie de versionnage doit rester cohérente

Version dans le chemin d'URL

Version dans l'en-tête

Version dans la chaîne de requête

Azure API Management

Version vs révision

Version vs révision

Azure API Management

Canary releases

Canary release

  • Résultats :
    • Si les retours sont bons → marquer la révision comme courante
    • Sinon → revenir à la révision précédente
  • Comme un test en cuisine : servir une nouvelle recette à quelques tables d'abord

  • Dans APIM :

    • Créer une nouvelle révision et la tester en privé
    • L'exposer à un public limité (produit pilote ou sous-ensemble d'appelants)
    • Cibler une révision via une URL spéciale avec son numéro
  • Métaphore ferroviaire : les testeurs empruntent la « voie maintenance » sans impacter la ligne principale

Azure API Management

Points clés à retenir

  • Quand utiliser versions vs révisions
  • Configurer le schéma de version
  • Déployer/annuler des changements

Gestion d'API

Azure API Management

Passons à la pratique !

Azure API Management

Preparing Video For Download...