сейчас задумались о необходимости поддержания онлайн нескольких версия API одновременно в одном проекте
По нашему опыту:
Разные версии API должны находиться в разных контроллерах и работать совершенно независимо. Зачастую новая версия API у нас в новом, отдельном компоненте.
Сопровождать много версий API это трудоемко и дорого. Подумайте хорошо над тем, что является основанием создания новой версии API.
Мы у себя придерживаемся практики расширения API совместимыми изменениями. Новая версия API создается при сущестувенной смене прикладного домена — в ней все работает действительно по другому: другие сущности, другие процессы.
На практике одна “версия” API живет 3-5-7 лет.
Есть пример срока жизни API в полгода, но там бизнес существенно изменил саму задачу, решили что сделать новое будет разумнее чем сильно перерабатывать старое.
Многое будет зависеть от качества проектирования: если хорошо продумаете базовые сущности, их жизненный цикл, прикладные процессы,
то API проработает долго, новые задачи будут требовать лишь расширения того что уже сделано.