Какой должна быть версия по умолчанию, если у меня есть много версий для REST API? - PullRequest
1 голос
/ 22 апреля 2009

У меня есть REST API, который будет принимать версию через пользовательский заголовок HTTP или параметр запроса. Я делаю это, потому что я не хочу, чтобы URI содержал версию вроде del.icio.us .e.g http://server/api/v1/...

Теперь в моем дизайне заголовок HTTP имеет более высокий приоритет, чем параметр запроса. Что произойдет, если пользователь вообще не предоставит никакой версии? Должен ли я по умолчанию использовать самую старую версию или по умолчанию использовать последнюю версию?

Ответы [ 3 ]

1 голос
/ 23 апреля 2009

Не версия URI вообще. Вместо этого просто версия представления. Таким образом, клиент может решить, какую версию API он хочет использовать, и это хорошо ухудшается.

Пример:

GET /contacts/3 HTTP/1.1
Accept: application/myapp-v2+xml

HTTP/1.1 200 OK
Content-Type: application/myapp-v2+xml
1 голос
/ 22 апреля 2009

Почему бы просто не сделать требуемую версию и выдать ошибку, если ее там нет?

Если это не вариант, вам придется использовать самую старую версию, в противном случае, если вы обновите и не сохраните обратную совместимость, вы сломаете существующие клиенты.

Конечно, если вы не против сломать существующих клиентов, возможно, будет удобнее использовать последнюю версию.

0 голосов
/ 21 июля 2009

Если ваш API определяет определенные URI или соглашения об именах URI для доступа к ресурсам, ваш API не является RESTful. Создание версий URI не является проблемой для любого REST API. Пожалуйста, см. http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...