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

knife4j常用注解

通过 knife4j就可以生成接口文档,那么我们就不需要 Yapi 了?

1、Yapi 是设计阶段使用的工具,管理和维护接口

2、Swagger 在开发阶段使用的框架,帮助后端开发人员做后端的接口测试

1. @Api

1.1 作用

用于类上,标注该类是一个 API 接口类,并给出简要说明。

1.2 示例

@Api(tags = "员工管理接口", description = "提供员工的增删改查接口")
@RestController
@RequestMapping("/api/employee")
public class EmployeeController {
    // 控制器中的API接口
}

1.3 说明

  • tags 用于标记模块名或者功能组名。
  • description 用于描述该模块的详细功能。

2. @ApiOperation

2.1 作用

用在方法上,例如Controller的方法,说明方法的用途、作用

2.2 示例

@ApiOperation(value = "根据ID获取员工信息", notes = "通过员工ID获取详细的员工信息")
@GetMapping("/employee/{id}")
public Employee getEmployeeById(@PathVariable Long id) {
    // 业务逻辑
    return employeeService.getEmployeeById(id);
}

2.3 说明

  • value 参数描述接口的主要功能。
  • notes 参数提供更多详细信息。

3. @ApiParam

3.1 作用

用于描述方法中的参数信息。

3.2 示例

@ApiOperation(value = "创建新员工")
@PostMapping("/employee")
public Employee createEmployee(@ApiParam(value = "员工信息") @RequestBody Employee employee) {
    // 业务逻辑
    return employeeService.createEmployee(employee);
}

3.3 说明

  • value 参数用于描述具体参数的功能和作用。

4. @ApiModel

4.1 作用

用于描述一个实体对象,也就是请求和响应中的模型。

4.2 示例

@ApiModel(description = "员工实体类")
public class Employee {
    
    @ApiModelProperty(value = "员工ID", example = "1001")
    private Long id;

    @ApiModelProperty(value = "员工姓名", example = "张三")
    private String name;

    @ApiModelProperty(value = "员工年龄", example = "30")
    private Integer age;
    
    // Getters and Setters
}

5. @ApiModelProperty

5.1 作用

用于描述模型属性的详细信息,通常配合 @ApiModel 使用。

5.2 示例

@ApiModel(description = "员工实体类")
public class Employee {

    @ApiModelProperty(value = "员工ID", example = "1001", required = true)
    private Long id;

    @ApiModelProperty(value = "员工姓名", example = "张三")
    private String name;

    @ApiModelProperty(value = "员工年龄", example = "30")
    private Integer age;
    
    // Getters and Setters
}

5.3 说明

  • value 描述属性的功能。
  • example 给出具体示例。
  • required 表示该字段是否必须。

6. 总结

说明:

  1. @ApiOperation:用于描述接口的主要功能和说明,常用于方法上。
  2. @Api:用于类上,标识该类是一个 API 模块,并可以描述模块的功能。
  3. @ApiParam:用于方法参数上,描述参数的含义和作用,便于理解。
  4. @ApiModel@ApiModelProperty:配合使用来描述实体类(模型)的详细信息,特别是用于复杂对象(如请求体、响应体)的参数描述。
  5. @ApiImplicitParams@ApiImplicitParam:用于简化 URL 查询参数或表单参数的定义,适合 @RequestParam@PathVariable 之类的参数。
  6. @ApiResponses@ApiResponse:描述接口的多种可能响应,特别是在接口有不同状态码返回时。
  7. @ApiIgnore:用于隐藏某些不需要出现在文档中的接口或参数。
  8. @ApiResponseObject:描述接口的返回类型,指明返回对象。

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

相关文章:

  • ChatGPT大模型极简应用开发-CH2-深入了解 GPT-4 和 ChatGPT 的 API
  • Selenium配合Cookies实现网页免登录
  • 大华前端开发面试题及参考答案 (下)
  • 第11篇:vue3 中 props 的使用
  • linux网络 | 传输层TCP | 认识tcp报头字段与分离
  • 深入探索C#中Newtonsoft.Json库的高级进阶之路
  • 大数据开发电脑千元配置清单
  • SpringBoot项目升级JDK版本(1.8 => 17)
  • Mac电脑使用pyenv管理多版本python环境 _
  • SpringBoot日常:封装redission starter组件
  • 基于Spring Boot的网上点餐系统
  • 【Spring AI】Java实现类似langchain的第三方函数调用_原理与详细示例
  • MLM之Llama-3:Llama 3.2的简介、安装和使用方法、案例应用之详细攻略
  • JIT详解
  • smartctl 设置硬盘的 write-caching
  • fp16与fp32简介与试验
  • 给网站加加速!下一代CDN(EdgeOne/边缘安全加速)使用与配置体验
  • 程序员转行AI 应用赛道太香了!!
  • 什么是分布式锁?Redis的分布式锁又是什么?
  • 深入解析:React中的信号组件与细粒度更新
  • 泰克MDO3054示波器特性和规格Tektronix MSO3054 500M 四通道
  • 【赵渝强老师】Oracle的物理存储结构
  • 一文1800字从0到1浅谈web性能测试!
  • Metasploit渗透测试之社会工程学工具SET
  • 深入理解Transformer的笔记记录(精简版本)----Seq2Seq → Seq2Seq with Attention
  • 一元n次多项式加法【数据结构-链表】