Попробуйте недавно выпущенный SpringFox 3.0.0, колеса, созданные ранее, можно использовать...

Spring Boot

Недавно был выпущен SpringFox 3.0.0, а с момента выпуска последней основной версии 2.9.2 прошло более 2 лет. Если вы увидите это имя, многим читателям оно покажется немного незнакомым. Однако просто покажите эти две зависимости, и вы все узнаете!

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>3.0.0</version>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>3.0.0</version>
    <scope>compile</scope>
</dependency>

Когда мы используем Spring MVC для написания интерфейсов, чтобы генерировать документы API, чтобы облегчить интеграцию Swagger, мы используем этот пакет SpringFox. Однако с момента обновления версии 2.9.2 не было никакого движения, и тенденция Spring Boot не изменилась.Некоторое время был написан класс конфигурации для добавления конфигурации документа в проект. Для этого раньше было построено такое колесо:

Это не сложно, но он был построен рано, поэтому я получил много звезд. Теперь SpringFox запустил стартер и взглянул на функцию, хотя она не идеальна, но все же намного лучше, чем наши собственные колеса раньше. Давайте посмотрим на основные моменты этой версии:

  • Spring 5, поддержка Webflux (только поддержка сопоставления запросов, пока нет функциональных конечных точек)
  • Поддержка интеграции Spring
  • Spring Boot поддерживает зависимость от springfox-boot-starter (нулевая конфигурация, поддержка автоматической настройки)
  • Документированные свойства конфигурации с автозаполнением
  • лучшая совместимость спецификаций
  • Поддержка OpenApi 3.0.3
  • Почти нулевые зависимости (единственные необходимые библиотеки — это spring-plugin, pswagger-core)
  • Существующие аннотации swagger2 будут продолжать работать и дополнять спецификацию открытого API 3.0.

Я думаю, что в этом обновлении наиболее важными моментами являются: поддержка Webflux, которой нет в текущем колесе, поддержка OpenApi 3 и совместимость со Swagger 2 (которую можно легко обновить).

Начать

Сказав так много, лучше поэкспериментировать с программой и быть более прямолинейным!

первый шаг: Создайте проект Spring Boot, который не будет здесь расширяться и не будет читать предыдущие руководства:Быстрый старт

второй шаг:pom.xmlДобавьте зависимости в:

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-boot-starter</artifactId>
    <version>3.0.0</version>
<dependency>

Теперь это намного проще, и одна зависимость выполнена!

третий шаг: применить основной класс для добавления аннотаций@EnableOpenApi.

@EnableOpenApi
@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

четвертый шаг: настроить некоторые примеры интерфейса, такие как:

@Api(tags="用户管理")
@RestController
public class UserController {

    @ApiOperation("创建用户")
    @PostMapping("/users")
    public User create(@RequestBody @Valid User user) {
        return user;
    }

    @ApiOperation("用户详情")
    @GetMapping("/users/{id}")
    public User findById(@PathVariable Long id) {
        return new User("bbb", 21, "上海", "aaa@bbb.com");
    }

    @ApiOperation("用户列表")
    @GetMapping("/users")
    public List<User> list(@ApiParam("查看第几页") @RequestParam int pageIndex,
                           @ApiParam("每页多少条") @RequestParam int pageSize) {
        List<User> result = new ArrayList<>();
        result.add(new User("aaa", 50, "北京", "aaa@ccc.com"));
        result.add(new User("bbb", 21, "广州", "aaa@ddd.com"));
        return result;
    }

    @ApiIgnore
    @DeleteMapping("/users/{id}")
    public String deleteById(@PathVariable Long id) {
        return "delete user : " + id;
    }

}

@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("用户基本信息")
public class User {

    @ApiModelProperty("姓名")
    @Size(max = 20)
    private String name;
    @ApiModelProperty("年龄")
    @Max(150)
    @Min(1)
    private Integer age;
    @NotNull
    private String address;
    @Pattern(regexp = "^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$")
    private String email;

}

пятый шаг: Запустите приложение! Посетите страничку чванства:http://localhost:8080/swagger-ui/index.html

Уведомление:

  1. Это обновление удаляет исходный путь к странице Swagger по умолчанию:http://host/context-path/swagger-ui.html, добавлены два новых доступных пути:http://host/context-path/swagger-ui/index.htmlиhttp://host/context-path/swagger-ui/
  2. Настроив уровень журнала, вы также можете увидеть, что новая версия интерфейса документа swagger также была добавлена ​​в дополнение к предыдущей версии интерфейса документа./v2/api-docsКроме того, появилась новая версия/v3/api-docsинтерфейс.

Эта серия уроков«Основное руководство по Spring Boot 2.x» нажмите прямо!

пример кода

Примеры этой статьи можно найти в следующем репозиторииchapter2-7содержание:

Если вы считаете, что эта статья хороша, добро пожаловатьStarПоддержите, ваше внимание - движущая сила моего упорства!

Эта статья была впервые опубликована:Попробуйте недавно выпущенный SpringFox 3.0.0, колеса, созданные ранее, можно использовать..., Пожалуйста, укажите источник. Добро пожаловать, чтобы обратить внимание на мой общедоступный номер: Programmer DD, получить эксклюзивные учебные ресурсы и ежедневный толчок галантерейных товаров.Щелкните, чтобы перейти непосредственно к каталогу этой серии учебных пособий..