Versioning des services RESTful?

J'ai un service web RESTful déployé à http://example.com/v1/SomeResource. Un jour, une nouvelle version du protocole (qui n'est pas rétro-compatible) est déployé à http://example.com/v2/SomeResource. À partir du client de vue, cette mise à niveau peut se produire à tout moment entre deux requêtes HTTP.

Comment le serveur d'indiquer au client qu'il ne prend plus en charge v1 appels et le client est tenu de mettre à niveau vers la v2? Est-il une réponse appropriée code que je peux utiliser?

Je tiens à fournir au client les informations suivantes:

  1. Une incompatibilité de mise à niveau a eu lieu. Il n'y a aucun moyen pour le client d'utiliser le nouveau service, parce que le protocole pourrait être totalement différente.
  2. L'URL du nouveau logiciel client.
  3. Un message expliquant aux utilisateurs qu'ils doivent mettre à niveau.

source d'informationauteur