Ответ
Повышение версии метода (например, с v1 до v2) необходимо в следующих случаях:
-
Ломающие изменения (breaking changes) – когда изменения нарушают обратную совместимость:
- Удаление или переименование параметров/полей
- Изменение типа возвращаемого значения
- Изменение бизнес-логики, влияющее на клиентов
-
Добавление обязательных параметров – если новые параметры обязательны для работы метода.
-
Изменение формата ответа – например, переход с XML на JSON.
Пример:
# v1 - возвращает строку
def get_user(id):
return "User1"
# v2 - возвращает JSON (ломающее изменение)
def get_user_v2(id):
return {"id": 1, "name": "User1"}
Не требует повышения версии:
- Добавление необязательных параметров
- Исправление багов (если поведение соответствует документации)
- Добавление новых полей в ответ (если старые клиенты могут их игнорировать)