java springdoc @ApiResponses 如何将列表定义为 return 对象使用
java springdoc @ApiResponses how to define a List as return object using
我正在使用具有以下依赖项的 SpringBoot
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.5.12</version>
</dependency>
控制器class(@RestController)有一个入口点(@GetMapping),这个入口点应该return一个对象列表:MyClass.java。我在方法上方添加了 Swagger 注释,以便通过 swagger UI 页面创建 API 文档。
swagger 文档应该指出 return 对象的类型是
List< MyClass>
但是我应该怎么做呢?如果我这样做
"@Schema(implementation = List< MyClass >.class)"
存在编译错误。
Swagger 注释:
@Operation(....)
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "successful operation",
content = { @Content(mediaType = "application/json",
schema = @Schema(implementation = ????)) }),
@ApiResponse(...),
@ApiResponse(...)
@GetMapping(value = "/aaa", produces = MediaType.APPLICATION_JSON_VALUE)
public List<MyClass> getAaa(...)
{
return ...
}
您需要为此使用 ArraySchema 注释并将其分配给 array
属性而不是 @Content
注释的 schema
属性。
您不需要仅指定 List.class
它的类型参数 MyClass.class
.
@Operation(
summary = "Get a list of users",
description = "Get a list of users registered in the system",
responses = {@ApiResponse(
responseCode = "200",
description = "The response for the user request",
content = {
@Content(
mediaType = "application/json",
array = @ArraySchema(schema = @Schema(implementation = User.class))
)
})
}
)
@GET
@SecurityRequirement(name = "JWT")
@Path("/user")
public List<User> getUsers() {
return null;
}
我正在使用具有以下依赖项的 SpringBoot
<dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-ui</artifactId> <version>1.5.12</version> </dependency>
控制器class(@RestController)有一个入口点(@GetMapping),这个入口点应该return一个对象列表:MyClass.java。我在方法上方添加了 Swagger 注释,以便通过 swagger UI 页面创建 API 文档。
swagger 文档应该指出 return 对象的类型是
List< MyClass>
但是我应该怎么做呢?如果我这样做
"@Schema(implementation = List< MyClass >.class)"
存在编译错误。
Swagger 注释:
@Operation(....) @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "successful operation", content = { @Content(mediaType = "application/json", schema = @Schema(implementation = ????)) }), @ApiResponse(...), @ApiResponse(...) @GetMapping(value = "/aaa", produces = MediaType.APPLICATION_JSON_VALUE) public List<MyClass> getAaa(...) { return ... }
您需要为此使用 ArraySchema 注释并将其分配给 array
属性而不是 @Content
注释的 schema
属性。
您不需要仅指定 List.class
它的类型参数 MyClass.class
.
@Operation(
summary = "Get a list of users",
description = "Get a list of users registered in the system",
responses = {@ApiResponse(
responseCode = "200",
description = "The response for the user request",
content = {
@Content(
mediaType = "application/json",
array = @ArraySchema(schema = @Schema(implementation = User.class))
)
})
}
)
@GET
@SecurityRequirement(name = "JWT")
@Path("/user")
public List<User> getUsers() {
return null;
}