Есть API, он время от времени апдейтится. Надо как то безболезненно переводить клиентов на использование нового API
Очевидно, проблема, далеко не нова, есть куча подводных камней, например неповоротливость клиентов, которые вообще не хотят переходить и хотят юзать старый API, и еще куча других.
Хотелось бы услышать мнение экспертов, кто уже наступал на грабли в качестве ответа на вопрос: "как безболезненно делать изменения в существующем ( и широко использующемся 24/7) API?"
Или хотя бы ссылки на почитать ( ну хабр напр, я искал - не нашел ((( )
SmInc, тогда как минимум он распухнет то неприличных размеров. А на вопрос новичка: "а что это за поле мы передаем" будет ответ: "не обращай внимания, тут так принято"
И все равно открыт вопрос будет, как заставить клиентов понять, что старые поля мы не убрали, только чтобы клиенты не поломались, но они уже deprecated (это в API как то можно указать? ) но на самом деле уже надо читать новые поля/блоки.
откуда может взяться так уж много новых полей взамен старых?
Вы отрицаете, значит, что API меняется? Гляньте, тогда на пример, который запостил предыдущий отвечающий (его полный ответ можно найти ниже): https://vk.com/dev/roadmap
надеюсь, Вы убедились, что API подвержен изменениям во вконтакте. А раз там, то и в других местах с чего бы ему оставаться неизменным. Причины самые разные. Сейчас не о них.
Дорожная карта - предположим, вышел новый закон, обязующий вставлять в API какое-то новое поле. Надо срочно поменять
Версионность - да, я знаю правила нумераций версий. Вопрос был в другом: когда мы выпустили новую версию API ( и правильно ее пронумеровали) как и куда ее выложить? Чтобы не вызвать боль у клиентов, ничего не сломать старого, а наоборот вызвать у него желание как можно скорее перейти со старого на новый
Зачастую это никак не сказывается на работоспособности уже отлаженных продуктов, но иногда требуются очень масштабные вмешательства, о которых лучше узнать заранее — и подготовиться к ним должным образом.
Получается клиенты могут поломаться? Тогда получается, что они пользуются своим монополизмом на рынке, делают клиентов недовольными, но поскольку клиентам некуда идти, они вынуждены быстро фиксить свои запросы к сервисам...
Боюсь, такая стратегия на высококонкурентных рынках, типа логистических перевозок может себя не оправдать... и клиент перейдет к конкурентку, с более продуманной системой апдейта API
V (обязательно) — используемая версия API. Использование этого параметра применяет некоторые изменения в формате ответа различных методов. На текущий момент актуальная версия API — 5.80. Этот параметр следует передавать со всеми запросами. Для сохранения совместимости в существующих приложениях по умолчанию используется версия 3.0.
В идеале, у вас несколько версий API будут работать одновременно, а дорожная карта нужна для того, чтобы уведомлять пользователей о том, какие глобальные изменения их ожидают. Например, это может быть информация о том, что какая-либо версия будет отключена.
P.S. В данный момент Вконтакте, согласно документации, работают одновременно ~100 версий API (4.0-5.80).