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”)
0%