温馨提示:

springBoot 版本 3.0+

knife4j 版本 4.1.0

添加依赖:knife4j包含了swagger,openapi3中的依赖,所以加这一个就行。

com.github.xiaoyminknife4j-openapi3-jakarta-spring-boot-starter4.1.0

yml文件中配置:

#springdoc相关配置springdoc:swagger-ui:path: /swagger-ui.htmltags-sorter: alphaoperations-sorter: alphaapi-docs:path: /v3/api-docsgroup-configs:- group: 'hyc'paths-to-match: '/**'packages-to-scan: com.hyc#改成你自己的包名,一般到启动类的包名#knife4j相关配置 可以不用改knife4j:enable: truesetting:language: zh_cnswagger-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配置 */@Configurationpublic class SwaggerConfig {/** * 根据@Tag 上的排序,写入x-order * * @return the global open api customizer */@Beanpublic GlobalOpenApiCustomizer orderGlobalOpenApiCustomizer() {return openApi -> {if (openApi.getTags()!=null){openApi.getTags().forEach(tag -> {Map 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));}};}@Beanpublic 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")