@Api
和 @ApiOperation
是 Swagger 2.x 规范中定义的注解,用于为 RESTful API 文档提供元数据信息。Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。在 Java 中,我们通常使用 Springfox 或类似的库来集成 Swagger 2.x 到 Spring Boot 应用中。
@Api
@Api
注解通常用于类上,以提供 API 的基本信息。
- tags:定义该 API 的标签或组名,通常用于在 Swagger UI 中对 API 进行分组。
- value:API 的简短描述。
- description:API 的详细描述。
- basePath:基本路径(如果与 Spring 的
@RequestMapping
或@RestController
中的路径不同)。 - hidden:标记该 API 是否在 Swagger UI 中隐藏。
示例:
@Api(tags = "用户管理相关接口", value = "UserController", description = "提供用户相关的 RESTful API")
@RestController
@RequestMapping("/api/user")
public class UserController {
// ...
}
@ApiOperation
@ApiOperation
注解通常用于方法上,以提供关于单个 API 操作的详细信息。
- value:操作的简短描述。
- notes:操作的详细描述或附加注释。
- tags:与
@Api
的tags
类似,但允许为单个方法指定不同的标签。 - response:操作返回的主要对象的类名。
- responses:定义可能的 HTTP 响应代码及其对应的对象。
- httpMethod:操作的 HTTP 方法(GET、POST 等)。但通常这不是必需的,因为可以从方法签名中推断出来。
示例:
@ApiOperation(value = "获取用户信息", notes = "根据用户ID获取用户详细信息", response = User.class)
@GetMapping("/{id}")
public ResponseEntity<User> getUserById(@PathVariable Long id) {
// ...
}
通过使用这些注解,你可以为 RESTful API 提供丰富的文档信息,并允许开发人员、测试人员或任何其他利益相关者轻松地理解、使用和测试这些 API。