从Springfox Swagger 2迁移到SpringdocOpen API [英] Migrating from Springfox Swagger 2 to Springdoc Open API
本文介绍了从Springfox Swagger 2迁移到SpringdocOpen API的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试着遵循这些:
https://www.dariawan.com/tutorials/spring/documenting-spring-boot-rest-api-springdoc-openapi-3/
如何处理如下批注:
@ApiModel(value = "Response container")
@ApiModelProperty(value = "Iventory response", required = true)
推荐答案
Migrating from SpringFox
- 删除Sprringfox和swagger 2依赖项。改为添加
springdoc-openapi-ui
依赖项。
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>@springdoc.version@</version>
</dependency>
将swagger 2批注替换为swagger 3批注(它已经包含在
springdoc-openapi-ui
依赖项中)。 Swagger 3批注的包是io.swagger.v3.oas.annotations
。@ApiParam
->;@Parameter
@ApiOperation
->;@Operation
@Api
->;@Tag
@ApiImplicitParams
->;@Parameters
@ApiImplicitParam
->;@Parameter
@ApiIgnore
-&>@Parameter(hidden = true)
或@Operation(hidden = true)
或@Hidden
@ApiModel
->;@Schema
@ApiModelProperty
->;@Schema
此步骤是可选的:仅当您有多个
Docket
Bean时,才用GroupedOpenApi
Bean替换它们。之前:
@Bean public Docket publicApi() { return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.basePackage("org.github.springshop.web.public")) .paths(PathSelectors.regex("/public.*")) .build() .groupName("springshop-public") .apiInfo(apiInfo()); } @Bean public Docket adminApi() { return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.basePackage("org.github.springshop.web.admin")) .paths(PathSelectors.regex("/admin.*")) .build() .groupName("springshop-admin") .apiInfo(apiInfo()); }
现在:
@Bean public GroupedOpenApi publicApi() { return GroupedOpenApi.builder() .setGroup("springshop-public") .pathsToMatch("/public/**") .build(); } @Bean public GroupedOpenApi adminApi() { return GroupedOpenApi.builder() .setGroup("springshop-admin") .pathsToMatch("/admin/**") .build(); }
如果您只有一个
Docket
--将其删除,并将属性添加到您的application.properties
:springdoc.packagesToScan=package1, package2 springdoc.pathsToMatch=/v1, /api/balance/**
- 添加
OpenAPI
类型的Bean。请参见示例:@Bean public OpenAPI springShopOpenAPI() { return new OpenAPI() .info(new Info().title("SpringShop API") .description("Spring shop sample application") .version("v0.0.1") .license(new License().name("Apache 2.0").url("http://springdoc.org"))) .externalDocs(new ExternalDocumentation() .description("SpringShop Wiki Documentation") .url("https://springshop.wiki.github.org/docs")); }
如果swagger-ui在代理后面提供:
自定义Swagger用户界面
向文档隐藏操作或控制器
这篇关于从Springfox Swagger 2迁移到SpringdocOpen API的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文