Slide 1

Slide 1 text

2023 Merci à nos sponsors

Slide 2

Slide 2 text

Le versioning des APIs REST par la pratique Alexandre TOURET SnowcampIO

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

Sommaire Un peu de théorie Présentation du workshop Go!

Slide 6

Slide 6 text

Un peu de théorie

Slide 7

Slide 7 text

Une application de gestion de librairie

Slide 8

Slide 8 text

Sous le capot

Slide 9

Slide 9 text

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?

Slide 10

Slide 10 text

Q ’ - q ’ ? On versionne les changements bloquants sur le contrat de services (opérations ou données)

Slide 11

Slide 11 text

• Une modification bloquante dans le contrat de services Par exemple : dans notre objet Book un auteur devient une liste ’ C’ -à-dire ? Q ’ - q ’ q ?

Slide 12

Slide 12 text

Comment spécifier la version ? URL Exemple /v1/api/books Header HTTP Exemple X-API-VERSION : v1 Content-Type Exemple Accept: application/vnd.myn ame.v1+json

Slide 13

Slide 13 text

Ou? Dans la gateway? Dans chaque backend? Dans le code? Sur chaque service ou sur ’ des services?

Slide 14

Slide 14 text

• é ’URL • Le changement de version représente des changements bloquants Google • é ’URL • j à V1… Spotify • é ’URL • j à V1… Apple Et les grands du web?

Slide 15

Slide 15 text

• Est- q j’ ? • Comment gérer le versioning ? • Combien de versions puis-je gérer en même temps ? • Quelle est la compatibilité de la plateforme? • Quelle est votre gestion de configuration et quels sont les impacts? • Quid de la sécurité? Quelques questions à se poser

Slide 16

Slide 16 text

Vous pouvez néanmoins positionner une version dans ’UR . Elle ne sera pas modifiée tant que le contrat de services ne sera pas rompu Si vous voulez repousser ’ du versioning

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

Le workshop

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

La gestion de configuration

Slide 21

Slide 21 text

• Utilisation des releases/tags faits avec GIT • Adaptez et versionnez également votre configuration (ex. les charts helm …) Comment gérer la configuration (simplement)?

Slide 22

Slide 22 text

• 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?

Slide 23

Slide 23 text

La sécurité

Slide 24

Slide 24 text

https://openfeedback.io /snowcamp23

Slide 25

Slide 25 text

D ’ ! Follow & get in touch @touret_alex linkedin.com/in/atouret blog.worldline.tech @WorldlineTech Follow our tech team: Follow me:

Slide 26

Slide 26 text

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