J'ai l'habitude d'avoir le numéro de version dans l'URL lui-même (/ v1 /). Je pense personnellement qu'il s'agit d'une approche beaucoup plus propre - de cette façon, l'utilisateur final (ou le développeur) n'a pas besoin de gérer les en-têtes HTTP, et peut simplement modifier l'API / appel de repos pour accéder à différentes versions de l'API au besoin.
Je pense qu'il est également possible que certaines des API HTTP là-bas dans différentes langues aient un support complet pour les en-têtes HTTP, vous faites donc toujours pour rendre l'API le plus facilement disponible pour l'utilisateur final. La réécriture de l'URL est la manière la plus simple, et elle devrait fonctionner avec tout ce qui prend en charge HTTP.
Enfin, permettre à la version API d'être spécifiée à l'aide de l'URL permet un test simple à l'aide d'un navigateur Web. Si vous incorporez le versioning dans un en-tête HTTP, le développeur est obligé d'utiliser un langage de programmation pour effectuer des tests.