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 {
    // 控制器方法
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值