После чтения большого количества материалов по управлению версиями REST я использую управление версиями вызовов вместо API. Например:
http://api.mydomain.com/callfoo/v2.0/param1/param2/param3
http://api.mydomain.com/verifyfoo/v1.0/param1/param2
вместо того, чтобы сначала иметь
http://api.mydomain.com/v1.0/callfoo/param1/param2
http://api.mydomain.com/v1.0/verifyfoo/param1/param2
затем перейдем к
http://api.mydomain.com/v2.0/callfoo/param1/param2/param3
http://api.mydomain.com/v2.0/verifyfoo/param1/param2
Преимущество, которое я вижу:
- При изменении звонка мне не нужно переписывать весь мой клиент - только те части, на которые влияют измененные вызовы.
- Те части клиента, которые работают хорошо, могут продолжаться так же, как есть (у нас есть много часов тестирования, вложенных, чтобы гарантировать, что клиент и сторона сервера стабильны.)
- Я могу использовать постоянные или непостоянные переадресации для измененных вызовов.
- Обратная совместимость была бы легкой, поскольку я могу оставить старые версии вызовов как есть.
Мне что-то не хватает? Просьба сообщить.