Ответ
Да, были разногласия по архитектуре API. Я предлагал REST с версионированием через заголовки (Accept: application/vnd.api.v1+json), а команда настаивала на версии в URL (/api/v1/resource).
Привел аргументы:
- Чистые URL без версий
- Легче тестировать (не нужно менять URL при обновлении)
- Стандартная практика (GitHub API, Stripe)
В итоге согласились на компромисс:
# Для критичных изменений - версия в URL
@app.route('/api/v2/users')
def get_users_v2():
...
# Для обратно совместимых - заголовки
@app.route('/api/users')
def get_users():
version = request.headers.get('Accept')
if 'v2' in version:
return new_logic()
return old_logic()
Разногласия разрешили через A/B тестирование и сбор метрик.