Springboot2.7.15 集成 Openapi3 Knife4j 4.3.X
目录
springboot 2.7.15 集成 openapi3- knife4j 4.3.X
<!--集成knife4j-->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi3-spring-boot-starter</artifactId>
<version>4.3.0</version>
</dependency>
配置文件
application.yml
# spring-doc 接口文档
springdoc:
api-docs:
enabled: true # 是否启用接口文档
配置类
package com.ceiec.flight.path.config;
import io.swagger.v3.oas.models.ExternalDocumentation;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import org.springdoc.core.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @Description: openapi 界面配置
* @Author: wuhming
* @Date: 2024/1/19
*/
@Configuration
public class OpenApiConfig {
@Bean
public OpenAPI springShopOpenAPI() {
return new OpenAPI()
// 接口文档标题
.info(new Info().title("Knife4j OpenApi 3")
// 接口文档描述
.description("Knife4j OpenApi 3 application")
// 接口文档版本
.version("v1.0")
// 开发者联系方式
.contact(new Contact().name("Flying9001").url("https://github.com/Flying9001")))
.externalDocs(new ExternalDocumentation()
// 额外补充说明
.description("Github example code")
// 额外补充链接
.url("https://github.com/Flying9001/springBootDemo/demo-knife4j-openapi3"));
}
@Bean
public GroupedOpenApi flightPath(){
return GroupedOpenApi.builder()
// 组名
.group("航迹相关接口")
// 扫描的包
.packagesToScan("com.ceiec.flight.path.controller")
.build();
}
}
demo controller
@Tag(name = "文件上传")
@RestController
@RequestMapping("file")
public class FileController {
@Operation(summary = "文件上传")
@PostMapping("upload")
public void upload(MultipartFile file){
}
}
访问地址:localhost:8888/api/v1/doc.html
注解变化:
旧版 | 新版 |
---|---|
@Api | @Tag |
@ApiIgnore | @Parameter(hidden = true) or @Operation(hidden = true) or @Hidden |
@ApiImplicitParam | @Parameter |
@ApiModel | @Schema |
@ApiModelProperty(hidden = true) | @Schema(accessMode = READ_ONLY) |
@ApiModelProperty | @Schema |
@ApiOperation(value = “foo”, notes = “bar”) | @Operation(summary = “foo”, description = “bar”) |
@ApiParam | @Parameter |
@ApiResponse(code = 404, message = “foo”) | @ApiResponse(responseCode = “404”, description = “foo”) |