Не версію URL-адрес, тому що ...
- Ви порушуєте постійні посилання
- Зміни URL-адреси поширюватимуться як захворювання через ваш інтерфейс. Що ви робите з уявленнями, які не змінилися, але вказують на представництво, яке є? Якщо ви зміните URL-адресу, ви зламаєте старих клієнтів. Якщо ви залишите URL-адресу, ваші нові клієнти можуть не працювати.
- Типи носіїв версій - набагато гнучкіше рішення.
Якщо припустити, що ваш ресурс повертає певний варіант application / vnd.yourcompany.user + xml, все, що вам потрібно зробити, - це створити підтримку нового типу засобів масової інформації / vnd.yourcompany.userV2 + xml та за допомогою магії узгодження вмісту для вашого v1 та Клієнти v2 можуть співіснувати мирно.
У інтерфейсі RESTful, найближчим до договору є визначення типів медіа, які обмінюються між клієнтом та сервером.
URL-адреси, які клієнт використовує для взаємодії з сервером, повинні надаватися сервером, вбудованим у раніше отримані представлення. Єдина URL-адреса, яку повинен знати клієнт, - це коренева URL-адреса інтерфейсу. Додавання номерів версій до URL має значення лише в тому випадку, якщо ви створюєте URL-адреси на клієнті, що ви, мабуть, не робити з інтерфейсом RESTful.
Якщо вам потрібно внести зміни до типів ваших медіа, які порушать існуючих клієнтів, тоді створіть новий і залиште URL-адреси в спокої!
А для тих читачів, які зараз кажуть, що це не має сенсу, якщо я використовую application / xml та application / json як типи медіа. Як ми повинні їх версії? Ти не. Ці мультимедійні типи в значній мірі марні для RESTful інтерфейсу, якщо ви не розбираєте їх за допомогою завантаження коду, і тоді версія версії є суперечкою.