Это всего лишь идея, но я бы не хотел, чтобы код вообще что-либо знал о версии.(Кроме того, что является его текущим номером версии.) Вместо этого я бы сделал /: version / часть вашего URI базой в вашей схеме перезаписи.
Таким образом, вместо базы будет что-то вроде: "http://www.example.com/"
Это может быть: "http://www.example.com/1.0/"
Таким образом, вы можете просто иметь разные ветви вашего управления исходным кодом на сервере отдельно, и ваш веб-сервер может определить, к какой версии направить URI.Тогда вашему коду не нужны знания о том, как работать с разными версиями, а ваша кодовая база не загрязняется большими операторами switch для выполнения разных задач в зависимости от версии.
Чтобы сделать его немного более безопасным, выможет потребовать, чтобы запросы содержали номер версии в шапке.Тогда ваш код может просто проверить, совпадает ли номер версии в заголовке с номером версии кода, на который он направляется, и выдать ошибку, если они не совпадают.
Например: отправка GET на http://www.example.com/2.0/ с номером версии в заголовке 1.0 выдает ошибку «неправильная версия».Ваш код должен знать только то, что header_version! = Current_version, поэтому его не нужно менять по мере выпуска новых версий.