spring-api-versioning

Simple development of multi-version api based on spring-mvc via @ApiVersion annotation, support for uri, header, param.

Лицензия

Лицензия

Группа

Группа

com.github.lkqm
Идентификатор

Идентификатор

spring-api-versioning
Последняя версия

Последняя версия

1.3.0
Дата

Дата

Тип

Тип

jar
Описание

Описание

spring-api-versioning
Simple development of multi-version api based on spring-mvc via @ApiVersion annotation, support for uri, header, param.
Ссылка на сайт

Ссылка на сайт

https://github.com/lkqm/spring-api-versioning
Система контроля версий

Система контроля версий

https://github.com/lkqm/spring-api-versioning

Скачать spring-api-versioning

Как подключить последнюю версию

<!-- https://jarcasting.com/artifacts/com.github.lkqm/spring-api-versioning/ -->
<dependency>
    <groupId>com.github.lkqm</groupId>
    <artifactId>spring-api-versioning</artifactId>
    <version>1.3.0</version>
</dependency>
// https://jarcasting.com/artifacts/com.github.lkqm/spring-api-versioning/
implementation 'com.github.lkqm:spring-api-versioning:1.3.0'
// https://jarcasting.com/artifacts/com.github.lkqm/spring-api-versioning/
implementation ("com.github.lkqm:spring-api-versioning:1.3.0")
'com.github.lkqm:spring-api-versioning:jar:1.3.0'
<dependency org="com.github.lkqm" name="spring-api-versioning" rev="1.3.0">
  <artifact name="spring-api-versioning" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.github.lkqm', module='spring-api-versioning', version='1.3.0')
)
libraryDependencies += "com.github.lkqm" % "spring-api-versioning" % "1.3.0"
[com.github.lkqm/spring-api-versioning "1.3.0"]

Зависимости

compile (3)

Идентификатор библиотеки Тип Версия
org.springframework.boot : spring-boot-starter Необязательный jar 2.3.9.RELEASE
org.springframework.boot : spring-boot-configuration-processor Необязательный jar 2.3.9.RELEASE
org.springframework.boot : spring-boot-starter-web Необязательный jar 2.3.9.RELEASE

provided (1)

Идентификатор библиотеки Тип Версия
org.projectlombok : lombok jar 1.18.8

test (1)

Идентификатор библиотеки Тип Версия
org.springframework.boot : spring-boot-starter-test jar 2.3.9.RELEASE

Модули Проекта

Данный проект не имеет модулей.

spring-api-versioning

Maven Central Travis (.org) branch

Simple development of multi-version api based on spring-mvc via @ApiVersion annotation, support for uri, header, param.

Supports: JDK 1.8, spring-boot 2.x

Features

  • URI: /v1/user/list, /v2/user/list
  • Header: /user/list, header: X-API-VERSION=1
  • Param: /user/list?api_version=1

Important: version number use precise matching with String equals method.

Quick

  1. Add Dependency(Maven)

    <dependency>
       <groupId>com.github.lkqm</groupId>
       <artifactId>spring-api-versioning</artifactId>
       <version>${version}</version>
    </dependency>
    
  2. @EnableApiVersioning with Application class

    @SpringBootApplication
    @EnableApiVersioning
    public class Application {
        public static void main(String[] args) {
            SpringApplication.run(Application.class, args);
        }
    }
    
  3. Controller

    @RestController
    @RequestMapping("/user")
    @ApiVersion("1")
    public class UserController {
    
        @GetMapping("/list")
        public String list1() {
            return "list1";
        }
    
        @GetMapping("/list")
        @ApiVersion("1.1")
        public String list2() {
            return "list2";
        }
    }
    
  4. Test

    curl http://127.0.0.1:8080/v1/user/list
    curl http://127.0.0.1:8080/v1.1/user/list
    

Config properties

api.version.type=uri                # versioning implement way: uri(default), header, param
api.version.uri-prefix=             # uri prefix, if set /api, request uri like: /api/v1/... /api/v2/...
api.version.uri-location=           # uri version location: begin(/v1/user/list), end(/user/list/v1)
api.version.header=X-API-VERSION    # version control http header name
api.version.param=api_version       # version control http query string name

Версии библиотеки

Версия
1.3.0
1.2.0
1.1.0
1.0.0