1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/lianqu1990-spring-boot-starter-version-mapping

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Версия маршрутизации

  • @ApiVersion

С помощью этого комментария автоматически объединяется путь, начинающийся с номера версии. Рекомендуется: для основной версии — конфигурация на уровне класса, для младшей версии — настройка на уровне метода, которая заменит конфигурацию основной версии на уровне класса.

  • @ClientVersion

Этот комментарий позволяет маршрутизировать различные методы обработки (handler method) через параметры интерфейса header cv и terminal. Маршрутизация основана на расширении метода getCustomCondition в RequestMappingHandlerMapping.

  • @VersionMapping

Комбинированный комментарий, который реализует функциональность 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 )

Вы можете оставить комментарий после Вход в систему

Введение

Управление версиями интерфейса в Spring MVC, расширение маршрутизации. Реализация версии интерфейса REST с помощью аннотаций, а также маршрутизация к различным методам обработки в компоненте Spring-boot на основе версии клиента. Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/lianqu1990-spring-boot-starter-version-mapping.git
git@api.gitlife.ru:oschina-mirror/lianqu1990-spring-boot-starter-version-mapping.git
oschina-mirror
lianqu1990-spring-boot-starter-version-mapping
lianqu1990-spring-boot-starter-version-mapping
master