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

OpenAPI3常用注解

OpenAPI 规范 (中文版) (apifox.cn)

目录

1.@Operation

2.@Parameter

3.@Parameters

4.@Schema

5.@ApiResponse

6.@Tag

1.@Operation

用于描述一个 API 操作,通常应用于控制器方法上。

参数

  • summary:接口的简要描述。
  • description:接口的详细描述。
  • tags:接口所属的标签组。
  • responses:定义可能的响应结果及其状态码。

示例:

@Operation(summary = "获取用户信息", description = "根据用户ID获取用户详细信息")
@GetMapping("/user/{id}")
public ResponseEntity<User> getUserById(@PathVariable Long id) {
    // 方法体
}

2.@Parameter

用于描述请求中的单个参数,可以应用于方法参数上。

参数

  • name:参数名称。
  • description:参数描述。
  • required:是否为必填项。
  • in:参数的位置(如 PATH、QUERY、HEADER 等)。

示例:

@Operation(summary = "获取用户信息")
@GetMapping("/user/{id}")
public ResponseEntity<User> getUserById(
    @Parameter(name = "id", description = "用户ID", required = true, in = ParameterIn.PATH) @PathVariable Long id) {
    // 方法体
}

3. @Parameters

用于定义多个参数的注解容器。@Parameters包含多个@Parameter注解。

@Operation(summary = "更新用户信息")
@PutMapping("/user/{id}")
@Parameters({
    @Parameter(name = "id", description = "用户ID", required = true, in = ParameterIn.PATH),
    @Parameter(name = "token", description = "用户认证Token", in = ParameterIn.HEADER)
})
public ResponseEntity<Void> updateUser(@PathVariable Long id, @RequestHeader String token, @RequestBody User user) {
    // 方法体
}

4.@Schema

用于描述对象模型和字段,通常用于实体类或 DTO 类上。

参数

  • description:字段描述。
  • example:字段的示例值。
  • required:字段是否为必填项。
  • type:字段的数据类型。
public class User {
    @Schema(description = "用户ID", example = "123")
    private Long id;

    @Schema(description = "用户名", example = "john_doe")
    private String username;
}

5. @ApiResponse

用于描述单个 API 响应。通常和 @Operation 一起使用。

参数

  • responseCode:HTTP 状态码。
  • description:响应描述。

示例:

@Operation(summary = "删除用户", description = "根据用户ID删除用户")
@ApiResponse(responseCode = "200", description = "成功删除用户")
@ApiResponse(responseCode = "404", description = "用户未找到")
@DeleteMapping("/user/{id}")
public ResponseEntity<Void> deleteUser(@PathVariable Long id) {
    // 方法体
}

6.@Tag

用于对接口进行分类,方便在文档中分组显示。

参数

  • name:标签名称。
  • description:标签描述。

示例:

@Tag(name = "用户管理", description = "用户相关操作")
@RestController
@RequestMapping("/user")
public class UserController {
    // 控制器方法
}

相关文章:

  • pygame--超级马里奥(万字详细版)
  • 【Android 源码分析】Activity生命周期之onDestroy
  • 游戏中的对象池技术探索(一)
  • C语言之文件操作
  • GWAS分析中显著位点如何注释基因:excel???
  • 利用Python进行文本处理的9个实用函数
  • 华为仓颉语言入门(9):for-in表达式
  • LeetCode讲解篇之2466. 统计构造好字符串的方案数
  • 【机器学习基础】Transformer学习
  • USB启动盘制作工具
  • 网络安全自学入门:(超详细)从入门到精通学习路线规划,学完即可就业
  • 【C++】显示声明与隐式声明的使用与区别
  • Redission · 可重入锁(Reentrant Lock)
  • CSP-J/S 复赛算法 树形动态规划
  • 一文讲清楚退耦电容的位置摆放及其过孔设计
  • 零基础入门AI大模型应用开发,你需要一个系统的学习路径!
  • 鸿蒙next开发者第一课02.DevEcoStudio的使用-习题
  • 高效查找服务器漏洞
  • 利用 notepad++ 初步净化 HaE Linkfinder 规则所提取的内容(仅留下接口行)
  • 若依从redis中获取用户列表
  • 视觉周刊|纪念苏联伟大卫国战争胜利80周年
  • 四姑娘山一游客疑因高反身亡,镇卫生院:送到时已很严重
  • 郎朗也来了,在辰山植物园“轻松听古典”
  • 宝妈称宝宝在粽子中吃出带血创可贴,来伊份:已内部排查
  • 昆明一学校门外小吃摊占满人行道,城管:会在重点时段加强巡查处置
  • 宇树科技王兴兴:第一桶金来自上海,欢迎上海的年轻人加入