Недавно был выпущен 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
Уведомление:
- Это обновление удаляет исходный путь к странице Swagger по умолчанию:
http://host/context-path/swagger-ui.html
, добавлены два новых доступных пути:http://host/context-path/swagger-ui/index.html
иhttp://host/context-path/swagger-ui/
- Настроив уровень журнала, вы также можете увидеть, что новая версия интерфейса документа swagger также была добавлена в дополнение к предыдущей версии интерфейса документа.
/v2/api-docs
Кроме того, появилась новая версия/v3/api-docs
интерфейс.
Эта серия уроков«Основное руководство по Spring Boot 2.x» нажмите прямо!
пример кода
Примеры этой статьи можно найти в следующем репозиторииchapter2-7
содержание:
- Гитхаб:GitHub.com/first87112/sp…
- Гостиница:git ee.com/brother space/S…
Если вы считаете, что эта статья хороша, добро пожаловатьStar
Поддержите, ваше внимание - движущая сила моего упорства!
Эта статья была впервые опубликована:Попробуйте недавно выпущенный SpringFox 3.0.0, колеса, созданные ранее, можно использовать..., Пожалуйста, укажите источник. Добро пожаловать, чтобы обратить внимание на мой общедоступный номер: Programmer DD, получить эксклюзивные учебные ресурсы и ежедневный толчок галантерейных товаров.Щелкните, чтобы перейти непосредственно к каталогу этой серии учебных пособий..