$30 off During Our Annual Pro Sale. View Details »

[RVD23]Le versioning des APIs REST par la pratique

[RVD23]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 versionning. 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 allons définir la stratégie à mettre en oeuvre, 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 versionning d'APIs.

Alexandre Touret

July 10, 2023
Tweet

More Decks by Alexandre Touret

Other Decks in Programming

Transcript

  1. Le versioning
    des APIs REST
    par la pratique
    David PEQUEGNOT / Alexandre TOURET
    Riviera Dev

    View Slide

  2. Alexandre TOURET
    Architecte logiciel
    @touret_alex
    blog.touret.info
    David Pequegnot
    Ingénieur Performance
    @foxlegend
    blog.worldline.tech
    Qui sommes-nous?
    3

    View Slide

  3. We design payments technology
    that powers the growth of millions
    of businesses around the world.
    Who are we?

    View Slide

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

    View Slide

  5. Contexte

    View Slide

  6. Une application de gestion de librairie

    View Slide

  7. Sous le capot

    View Slide

  8. 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 Slide

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

    View Slide

  10. Le workshop

    View Slide

  11. Les sources et solutions
    https://github.com/alexandre-touret/rest-apis-versioning-workshop
    https://github.com/alexandre-touret/rest-apis-versioning-solution

    View Slide

  12. La gestion de configuration

    View Slide

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

    View Slide

  14. Gestion de
    la configuration

    View Slide

  15. • 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 Slide

  16. La sécurité

    View Slide

  17. Feedback

    View Slide

  18. D ’ !
    Follow & get in touch
    @foxlegend
    linkedin.com/in/davi
    dpequegnot/
    blog.worldline.tech
    @WorldlineTech
    Follow our tech team: Follow us:
    @touret_alex
    linkedin.com/in
    /atouret
    27 |

    View Slide

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

    View Slide