Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[CES23] Le versioning des APIs REST par la pratique

[CES23] Le versioning des APIs REST par la pratique

Quand on souhaite publier des APIs avec par exemple, une solution d' API Management, on évoque régulièrement le versioning. Cette pratique répond à des contraintes projet mais apporte malheureusement son lot de complexité.

Imaginez, vous travaillez sur un produit qui expose des APIs à plusieurs clients. Vous devez leur proposer des évolutions et nouvelles fonctionnalités tout en maîtrisant l'existant.
Comment faire évoluer et proposer vos APIs à certains clients sans pénaliser les autres? Quelle stratégie adopter? Quelles solutions techniques peut-on mettre en place simplement?

Lors de cet atelier, vous (re)découvrirez et mettrez en pratique des conseils que j'ai pu mettre en oeuvre et qui m'ont aidé lors de mes derniers projets.

Au travers d'un cas concret basé sur une architecture microservices, nous définirons la stratégie à mettre en œuvre, les différentes possibilités d'implémentation ainsi que leurs contraintes.
Nous les challengerons ensuite en apportant différentes évolutions (ajout d'un nouveau client ou de nouvelles fonctionnalités).

A l’issue de cet atelier, nous aurons une vue complète et mis en pratique différentes manières d'appréhender le versioning d'APIs.

Alexandre Touret

October 26, 2023
Tweet

More Decks by Alexandre Touret

Other Decks in Programming

Transcript

  1. Le versioning
    des APIs REST
    par la pratique
    Alexandre TOURET

    View full-size slide

  2. Alexandre TOURET
    Architecte logiciel, TechRel
    @touret_alex
    blog.touret.info
    alexandre-touret
    Qui suis-je?

    View full-size slide

  3. We design payments technology
    that powers the growth of millions
    of businesses around the world.

    View full-size slide

  4. Sommaire
    Un peu de
    contexte
    Présentation
    du workshop
    Go!

    View full-size slide

  5. Une application de gestion de librairie

    View full-size slide

  6. Sous le capot

    View full-size slide

  7. Version initiale avec un client
    j ’ ’ é é
    des descriptions
    j é ’

    Prise en considération de la sécurité
    (autorisations, habilitations)
    Roadmap de notre produit
    Besoin de
    versionner nos
    APIS?

    View full-size slide

  8. https://cloud.google.com/blog/products/api-management/common-
    misconceptions-about-api-versioning?hl=en
    Pour aller plus loin

    View full-size slide

  9. Les sources et solutions
    https://github.com/alexandre-touret/rest-apis-versioning-workshop
    https://github.com/alexandre-touret/rest-apis-versioning-solution
    Branche
    2H_WORKSHOP

    View full-size slide

  10. La gestion de configuration

    View full-size slide

  11. Main Feature
    Hotfix Develop Release
    V1 V2 V2.1
    Release
    avec la liste
    des auteurs
    Compatibilité
    ascendante
    V1.1

    View full-size slide

  12. Gestion de
    la configuration

    View full-size slide

  13. • 1 livrable par branche ou tag
    • JAR, ZIP, Charts HELM, Image Docker
    • Idéalement les livrables sont agnostiques (sans configuration)
    • La configuration est portée par un référentiel
    • Statique : ex. environnement Gitlab et fichiers associés
    • Dynamique: serveur de configuration
    Quels seront les livrables et configurations
    associées?

    View full-size slide

  14. La sécurité

    View full-size slide

  15. D ’ !
    Follow & get in touch
    @touret_alex
    linkedin.com/in/atouret
    blog.worldline.tech
    @WorldlineTech
    Follow our tech team: Follow me:
    blog.touret.info
    alexandre-touret
    Feedback

    View full-size slide

  16. Explore our jobs in tech:
    careers.worldline.com
    Want to shape
    how the world pays
    and get paid?

    View full-size slide