admin管理员组文章数量:1794759
Spring Boot 3.0 集成 knife4j 接口文档
1、环境
代码语言:plain复制Java: 21
Spring Boot: 3.3.4
Maven: 3.9.9
2、实操
2.1 引入依赖
代码语言:xml复制<!-- .github.xiaoymin/knife4j-openapi3-jakarta-spring-boot-starter -->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
<version>4.5.0</version>
</dependency>
2.2 添加配置文件
代码语言:java复制package com.jie.springbootinit.config;
import io.swagger.v3.oas.models.OpenAPI;
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.Map;
/**
* Knife4j配置
*
* @author jie
*/
@Configuration
public class SwaggerConfig {
/**
* API标题
*/
private static final String API_TITLE = "Jie的API";
/**
* API版本
*/
private static final String API_VERSION = "1.0";
/**
* API描述
*/
private static final String API_DESCRIPTION = "Knife4j集成springdoc-openapi示例";
/**
* 服务条款URL
*/
private static final String TERMS_OF_SERVICE_URL = ";;
/**
* 许可证名称
*/
private static final String LICENSE_NAME = "Apache 2.0";
/**
* 许可证URL
*/
private static final String LICENSE_URL = ";;
/**
* 根据@Tag 上的排序,写入x-order
*
* @return the global open api customizer
*/
@Bean
public GlobalOpenApiCustomizer orderGlobalOpenApiCustomizer() {
return openApi -> {
if (openApi.getTags() != null) {
openApi.getTags().forEach(tag -> {
// 使用Map.of简化Map的创建
tag.setExtensions(Map.of("x-order", 1));
});
}
if (openApi.getPaths() != null) {
openApi.addExtension("x-test123", "333");
openApi.getPaths().addExtension("x-abb", 1);
}
};
}
@Bean
public OpenAPI createCustomOpenApi() { // 修改方法名为createCustomOpenApi
return new OpenAPI()
.info(new Info()
.title(API_TITLE)
.version(API_VERSION)
.description(API_DESCRIPTION)
.termsOfService(TERMS_OF_SERVICE_URL)
.license(new License().name(LICENSE_NAME)
.url(LICENSE_URL)));
}
}
2.3 添加测试的Controller
代码语言:java复制package com.jie.springbootinit.controller;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 测试接口
*
* @author jie
*/
@RestController
@RequestMapping("/test")
@Tag(name = "测试接口")
public class TestContrller {
@GetMapping("/hello")
@Operation(summary = "测试接口")
public String hello() {
return "Hello, World!";
}
}
3、启动项目,查看效果
访问地址:http://localhost:项目端口/doc.html#/home
发送请求
4、Swagger V3(OpenAPI 3)常用注解
注解 | 说明 | 示例 | 使用位置 |
---|---|---|---|
| 用于定义整个API的元数据,如信息、服务器等 |
| 类级别(通常是主应用类) |
| 定义API的基础信息,如标题、版本、描述等 |
| 作为 |
| 指定API服务器的基本信息,包括URL和描述 |
| 类级别或方法级别 |
| 用于为API分组和标记 |
| 类级别或方法级别 |
| 用于描述API操作(即每个HTTP请求) |
| 方法级别 |
| 描述操作中的参数 |
| 方法级别的参数 |
| 描述API的请求体 |
| 方法级别 |
| 用于定义每个操作的响应信息 |
| 方法级别 |
| 定义模型对象的属性和元数据 |
| 类级别、字段级别 |
| 用于定义数组类型的Schema |
| 方法级别、字段级别 |
| 用于指定响应和请求体的媒体类型及内容 |
| 作为 |
| 用于定义请求或响应的示例 |
| 作为 |
| 定义API中的可重用组件,如schemas、参数、响应等 |
| 类级别(通常是主应用类) |
| 指定操作所需的安全方案 |
| 方法级别或类级别 |
| 定义操作中使用的响应头信息 |
| 作为 |
本文标签: Spring Boot 30 集成 knife4j 接口文档
版权声明:本文标题:Spring Boot 3.0 集成 knife4j 接口文档 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1754650961a1704791.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论