当前位置: 首页 > article >正文

Knife4j与springboot集成自动编写API文档

1.第一步先导入所需的依赖

<dependency>
     <groupId>com.github.xiaoymin</groupId>
         <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
     <version>4.3.0</version>
</dependency>

2.第二步编写配置类,title文档标题 version版本 description描述

@Configuration
public class Knife4jConfiguration {

    @Bean
    public OpenAPI openAPI() {
        return new OpenAPI()
                .info(new Info()
                        .title("hello-knife4j项目API")
                        .version("1.0")
                        .description("hello-knife4j项目的接口文档"));
    }
    
    @Bean
    public GroupedOpenApi userAPI() {
        return GroupedOpenApi.builder().group("用户信息管理").
                pathsToMatch("/user/**").
                build();
    }

    @Bean
    public GroupedOpenApi systemAPI() {
        return GroupedOpenApi.builder().group("产品信息管理").
                pathsToMatch("/product/**").
                build();
    }

3.创建一个实体类用作相应请求参数,Schema这个注解标识响应请求参数的描述

@Data
@Schema(description = "用户信息实体")//
public class User {
    @Schema(description = "用户id")
    private Long id;
    @Schema(description = "用户名")
    private String name;
    @Schema(description = "用户年龄")
    private Integer age;
}

4.编写一个controller

@RestController
@RequestMapping("/user")
@Tag(name = "用户信息管理") //标识这个类的作用
public class UserController {

    @GetMapping("getById")
    @Operation(summary = "根据ID查询用户信息") //文档标题
    //@Parameter(description = "用户ID") 请求参数说明
    public User getById(@Parameter(description = "用户ID") @RequestParam("id") Long id){
        User user=new User();
        user.setId(id);
        user.setName("小猪");
        user.setAge(10);
        return user;
    }
}

上面的步骤完成后就可以启动访问这个地址查看文档http://localhost:8080/doc.html, 在项目中添加的注解都显示到对应的地方,如果没有添加或者是用错了那API文档就不会显示描述


http://www.kler.cn/a/403116.html

相关文章:

  • uniapp接入BMapGL百度地图
  • 汽车加油行驶问题-动态规划算法(已在洛谷AC)
  • [每周一更]-(第124期):模拟面试|缓存面试思路解析
  • 设计模式之 状态模式
  • c语言学习23数组传递到子函数
  • 刷题-1122
  • 《生成式 AI》课程 第3講 CODE TASK 任务3:自定义任务的机器人
  • 【传知代码】VRT_ 关于视频修复的模型
  • mysql中mvcc如何处理纯读事务的?
  • 《数据结构》学习系列——图(上)
  • 如何控制自己玩手机的时间?两台苹果手机帮助自律
  • JDBC使用p6spy记录实际执行SQL方法【解决SQL打印两次问题】
  • AWS 多区域部署实战:Route 53 加权路由与多层健康检查
  • 反转链表、链表内指定区间反转
  • 10 基于深度学习的目标检测
  • Redis 集群主要有以下几种类型
  • 【Android原生问题分析】夸克、抖音划动无响应问题【Android14】
  • 2. Django中的URL调度器 (自定义路径转换器)
  • Windows Server 2022 Web1
  • misc设备驱动
  • [系统安全]PE文件头中的重定位表
  • springboot-事务失效以及排查过程
  • wife_wife
  • 设计探测1飞伏的装置可能吗?
  • gitlab ci/cd搭建及使用笔记(三)
  • 常见协议所对应的漏洞