Retour

API versioning et rétrocompatibilité avec Symfony

Tuto
28 mars 2018
26mn

Progression
2

Configuration des fichiers de changement par version

Nous allons donc avoir besoin de spécifier les changements de retrocompatibilité à appliquer lorsqu'une version précédente est demandée.

Il nous faut implémenter une liste des versions dans la configuration de Symfony avec, pour chaque version, le namespace complet du fichier qui contient les versions à appliquer.

Spécifions les versions retrocompatibles

Editez le fichier app/config/parameters.yml de votre projet (ou config/services.yaml sous Symfony 4) et ajoutez l'entrée suivante, sous parameters :

parameters: versions: 1.1.0: Acme\VersionChanges\VersionChanges110 1.0.0: Acme\VersionChanges\VersionChanges100 0.9.0: Acme\VersionChanges\VersionChanges009 0.8.0: Acme\VersionChanges\VersionChanges008

Nous spécifions une liste de la version la plus récente à la plus ancienne.

Note : La version actuelle (1.2.0) n'apparaît pas dans cette liste, car il s'agit ici uniquement de la liste des versions sur lesquelles nous souhaitons appliquer une retrocompatibilité.

Les changements de retrocompatibilité seront alors appliqués dans ce même ordre.

Ainsi, dans le cas ou un client ajoute un header X-Accept-Version: 0.9.0 dans ses requêtes, les changements de retrocompatibilité des versions seront joués respectivement dans l'ordre 1.1.0, 1.0.0 puis 0.9.0.

La version 0.8.0 ne devra pas être jouée, car elle correspond à un modèle encore plus ancien que celui demandé.

Prochaine étape

Cette configuration doit ensuite être interprêtée par Symfony, et les changements nécessaires appliqués à la réponse de votre API en fonction de la version demandée.


Articles sur le même thème

Comment créer de la dette technique dès le début d’un nouveau projet ?

Quand on arrive sur un projet existant, on doit souvent subir une dette technique qui nous fait perdre du temps et qui nous rend fou au point de vérifier qui a fait le code. Vous aussi vous voulez entrer dans la postérité lors d’un git blame et mal concevoir votre produit ?

9 août 20238mnMarianne Joseph-Géhannin

Découvrez Eleven Labs

Notre site pour mieux nous connaître

J'y vais

Contact

Eleven Labs - Paris

102, rue du Faubourg Saint Honoré

75008 Paris

Eleven Labs - Nantes

42, rue la Tour d'Auvergne

44200 Nantes

Eleven Labs - Montréal

1155, Metcalfe St Suite 1500

Montréal, QC H3B 2V6, Canada

business@eleven-labs.com

01.82.83.11.75