Knife4j是一个用于生成和展示API文档的工具,同时它还提供了在线调试的功能
Knife4j使用
- 创建项目


- 在pom.xml里添加依赖,并进行依赖安装
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
<version>4.4.0</version>
</dependency>
- 创建config目录编写配置类
package com.knife4j.java_07_knife4j.config;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class Knife4jConfiguration {
// 配置接口文档标题
@Bean
public OpenAPI openAPI() {
return new OpenAPI()
.info(new Info()
.title("hello-knife4j项目API")
.version("1.0")
.description("hello-knife4j项目的接口文档"));
}
// 配置接口的分类,以/user/开头的接口都规划到‘用户信息管理’
@Bean
public GroupedOpenApi userAPI() {
return GroupedOpenApi.builder().group("用户信息管理").
pathsToMatch("/user/**").
build();
}
// 配置接口的分类,以/product/开头的接口都规划到‘产品信息管理’
@Bean
public GroupedOpenApi systemAPI() {
return GroupedOpenApi.builder().group("产品信息管理").
pathsToMatch("/product/**").
build();
}
}
- 编写接口
package com.knife4j.java_07_knife4j.entity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
#Schema定义接口字段说明
@Data
@Schema(description = "用户信息实体")
public class User {
@Schema(description = "用户ID")
private Integer id;
@Schema(description = "用户名称")
private String name;
@Schema(description = "用户年龄")
private Integer age;
}
package com.knife4j.java_07_knife4j.controller;
import com.knife4j.java_07_knife4j.entity.User;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
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.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/user")
@Tag(name = "用户信息管理")
public class UserController {
@GetMapping("getById")
@Operation(summary = "用户信息接口")
public User getById(@Parameter(description = "用户ID") @RequestParam("id") Integer id){
User user = new User();
user.setId(id);
user.setName("张三");
user.setAge(18);
return user;
}
}
- 启动项目
找到启动类启动项目,访问http://localhost:8081/doc.html
