使用 Spring-Doc 生成接口文档
本文主要介绍如何使用 OpenAPI 3.0
为一个 Spring Boot
项目 (web
项目) 生成 API
文档。
常用注解
@Tag
@Tag
用于为 API
文档中的 API
分组,可以为 @Tag
指定 name
和 description
。name
相同的 @Tag
会被合并到一起。
通常情况下,我们会使用 @Tag
标识一个 Controller
类。
@Operation
@Operation
用于为 API
文档中的 API
添加描述信息,可以为 @Operation
指定 summary
和 description
。
@Parameters
和 @Parameter
@Parameters
用于为 API
文档中的 API
添加参数信息,@Parameters
中包含多个 @Parameter
。
@Parameter
用于为 API
文档中的 API
添加参数信息,可以为 @Parameter
指定 name
、in
、description
、 required
、schema
等属性。
@Schema
@Schema
用于给对象添加描述信息,可以为 @Schema
指定 name
、title
、description
、example
等属性。
@Hidden
, @Parameter(hidden = true)
和 @Operation(hidden = true)
@Hidden
用于隐藏一个 Controller
类,@Parameter(hidden = true)
用于隐藏一个参数,@Operation(hidden = true)
用于隐藏一个 API
(方法)。
@ApiResponses
和 @ApiResponse
@ApiResponses
用于为 API
文档中的 API
添加响应信息,@ApiResponses
中包含多个 @ApiResponse
。
@ApiResponse
用于为 API
文档中的 API
添加响应信息,可以为 @ApiResponse
指定 responseCode
、description
、 content
等属性。
一个完整的例子
我们首先为 DTO
对象添加各种的 @Schema
注解:
@Data
@Schema(description = "User Data Transfer Object")
public class UserDTO {
@Schema(accessMode = Schema.AccessMode.READ_ONLY, description = "User ID")
private Long id;
@Schema(description = "Username", requiredMode = Schema.RequiredMode.REQUIRED, example = "admin")
private String username;
@Schema(description = "Email", requiredMode = Schema.RequiredMode.REQUIRED, example = "admin@cmipt.edu")
private String email;
@Schema(description = "User Password (Unencrypted)", requiredMode = Schema.RequiredMode.REQUIRED, example = "admin")
private String userPassword;
}
接下来我们为一个 Controller
类添加 @Tag
、@Operation
、@ApiResponses
和 @ApiResponse
等注解:
@Controller
@RequestMapping("/user")
@Tag(name = "User", description = "User Related APIs")
public class UserController {
@Autowired
private UserService userService;
@PostMapping
@Operation(
summary = "Create a new user",
description = "Create a new user with the given information",
tags = { "User", "Post Method" }
)
@ApiResponses({
@ApiResponse(responseCode = "200", description = "User created successfully"),
@ApiResponse(responseCode = "400", description = "User creation failed")
})
public ResponseEntity<Void> createUser(@RequestBody UserDTO user) {
// some code here
return ResponseEntity.ok().build();
}
}
经过上面的操作后,我们启动程序,访问 http://localhost:8080/swagger-ui/index.html
,就可以看到生成的 API
文档了。
Enjoy Reading This Article?
Here are some more articles you might like to read next: