温馨提示:
springBoot 版本 3.0+
knife4j 版本 4.1.0
添加依赖:knife4j包含了swagger,openapi3中的依赖,所以加这一个就行。
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
<version>4.1.0</version>
</dependency>
<!--springBoot相关配置忽略-->
yml文件中配置:
#springdoc相关配置
springdoc:
swagger-ui:
path: /swagger-ui.html
tags-sorter: alpha
operations-sorter: alpha
api-docs:
path: /v3/api-docs
group-configs:
- group: 'hyc'
paths-to-match: '/**'
packages-to-scan: com.hyc #改成你自己的包名,一般到启动类的包名
#knife4j相关配置 可以不用改
knife4j:
enable: true
setting:
language: zh_cn
swagger-model-name: 实体类
配置类,主要是配置接口文档的主页信息,也可以写在yml文件中,这里是采用的配置类
package com.hyc.config;
import cn.hutool.core.util.RandomUtil;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.info.License;
import org.springdoc.core.customizers.GlobalOpenApiCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.HashMap;
import java.util.Map;
/**
* Swagger配置
*/
@Configuration
public class SwaggerConfig {
/**
* 根据@Tag 上的排序,写入x-order
*
* @return the global open api customizer
*/
@Bean
public GlobalOpenApiCustomizer orderGlobalOpenApiCustomizer() {
return openApi -> {
if (openApi.getTags()!=null){
openApi.getTags().forEach(tag -> {
Map<String,Object> map=new HashMap<>();
map.put("x-order", RandomUtil.randomInt(0,100));
tag.setExtensions(map);
});
}
if(openApi.getPaths()!=null){
openApi.addExtension("x-test123","333");
openApi.getPaths().addExtension("x-abb",RandomUtil.randomInt(1,100));
}
};
}
@Bean
public OpenAPI customOpenAPI() {
return new OpenAPI()
.info(new Info()
.title("SpringCloud微服务系统API")
.version("1.0")
.contact(new Contact().name("hyc").url("www.baidu.com").email("XXXXX@163.com"))
.description( "SpringCloud微服务系统API")
.termsOfService("www.baidu.com")
.license(new License().name("Apache 2.0")
.url("www.baidu.com")));
}
}
然后,就可以启动测试输入地址http://ip:port/doc.html

注解的基本使用可以看下这里:swagger3注解和swagger2的区别
这里主要提下请求参数为文件的时候怎么写

@Parameter(name = "image", description = "图片文件", required = true,schema =@Schema(type = "file"))
在@Parameter参数注解里面加 schema = @Schema(type = "string", format = "binary")



















