С помощью этого комментария автоматически объединяется путь, начинающийся с номера версии. Рекомендуется: для основной версии — конфигурация на уровне класса, для младшей версии — настройка на уровне метода, которая заменит конфигурацию основной версии на уровне класса.
Этот комментарий позволяет маршрутизировать различные методы обработки (handler method) через параметры интерфейса header cv и terminal. Маршрутизация основана на расширении метода getCustomCondition в RequestMappingHandlerMapping.
Комбинированный комментарий, который реализует функциональность RequestMapping и предоставляет конфигурации двух вышеупомянутых комментариев.
Сценарии использования:
ApiVersion: замена предыдущей версии, определённой в пути, приводит к необходимости повторного определения класса или написания большого количества логики для проверки версий в коде при обновлении интерфейса.
ClientVersion: если клиент уже использует интерфейс, то с помощью ClientVersion можно элегантно избежать написания большого объёма логики проверки версий в коде.
@RequestMapping("/t")
@RestController
@ApiVersion("4")
public class TController {
// Запрос пути /4/t/get
@RequestMapping(value="/get")
public String get1 (){
return "Старый интерфейс";
}
// Запрос пути /4.1/t/get
@RequestMapping(value= "/get",params = "data=tree")
@ApiVersion("4.1")
// Метод apiversion имеет приоритет над классом, что упрощает обновление младшей версии
public String get2(){
return "Новые данные";
}
// Все три запроса пути - /c
// Через заголовок клиента (тип) и номер версии маршрутизируется к различным методам
@GetMapping("/c")
@ClientVersion(expression = {"1>6.0.0"})
public String cvcheck1(){return "Версия 1 выше 6.0.0";}
@GetMapping("/c")
@ClientVersion({@TerminalVersion(terminals = 2,op= VersionOperator.GT,version = "6.0.0")})
public String cvcheck2(){return "Тип 2 версии выше 6.0.0";}
@GetMapping("/c")
@ClientVersion({@TerminalVersion(terminals = 2,op= VersionOperator.LTE,version = "6.0.0")})
public String cvcheck3(){return "Тип 2 версии ниже 6.0.0";}
public String c(){
return "aaaa";
}
}
@RestController
@VersionMapping(value="/t",apiVersion = "4")
public class TController {
@VersionMapping(value="a",terminalVersion = @TerminalVersion(terminals = 1,op = VersionOperator.EQ,version = "3.0"))
public String t(){
return "123";
}
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )