@JavaDeveloper98

Как реализовать обратную совместимость при версионировании REST API в Spring Boot?

Хочу реализовать версионирование с помощью заголовков и при этом добиться возможности указывать диапазон версий в контроллере.
Было бы идеально использование аннотации, но не представляю как реализовать ее обработку, буду рада любым примерам кода или последовательности шагов!

Идеальный результат на примере контроллера:

@GetMapping
@Version(1,2.2)
public String getString(){
return " get this string from version 1 to version 2.2";
}
@GetMapping
@Version(2.3,6.1)
public String getString1(){
return " get this string from version 2.3 to version 6.1";
}

Хочется в аннотацию указывать или диапазон с какой по какую версию можно использовать или просто через запятую версии.
Тоесть чтобы при отправлении гет запроса с заголовком VERSION 1 он попадал в первый метод, а с заголовком VERSION 6, во второй

Также буду рада любым другим вариантам и рекомендациям, спасибо!
  • Вопрос задан
  • 551 просмотр
Пригласить эксперта
Ответы на вопрос 1
xez
@xez Куратор тега Java
TL Junior Roo
Непонятно откуда может взяться большое количество версий API. Там обычно не все так быстро происходит.
Можно сделать отдельный контроллер к каждой версии (и это точно лучше, чем мешать в одном классе разные версии методов):
@RestController
@RequestMapping("api1")
public class OldApi {

@GetMapping
public String getString() {
  return " get this string from version 1 to version 2.2";
}

}

@RestController
@RequestMapping("api2")
public class NewApi {

@GetMapping
public String getString() {
  return " get this string from version 2.3 to version 6.1";
}

}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы