Pet*_*rum 4 spring swagger openapi springdoc
我正在使用 Swagger 版本 2.1.9 从 Springfox 迁移到 Springdoc。
因此,必须重写注释,并且我找不到旧 Swagger 注释的等效注释。
我有这个 API 控制器:
@GetMapping
@ApiOperation(value = "Load Building")
@ApiResponses(value = {
@ApiResponse(code = 200, message = "OK", response = Building.class, responseContainer = "Page")
})
public ResponseEntity<Page<Building>> getBuilding(Pageable building) {
final Page<Building> building = buildingrepo.findAll(page).map(bw -> mapper.map(bd, Building.class));
return ResponseEntity.ok().body(building);
Run Code Online (Sandbox Code Playgroud)
使用新的 Swagger 注释,必须重新编写它,但我不知道如何将“Building.class”放入响应架构中的可分页中。我不能再使用“responseContainer”
@GetMapping
@Operation(summary = "Load Building")
@ApiResponses(value = {
@ApiResponse(responseCode = "200",
description = "OK",
content = @Content(schema = @Schema(implementation = Building.class))) // <--- Here i need the Page class somehow as Container!!!
})
public ResponseEntity<Page<Building>> getBuilding(Pageable building) {
final Page<Building> building = buildingrepo.findAll(page).map(bw -> mapper.map(bd, Building.class));
return ResponseEntity.ok().body(building);
Run Code Online (Sandbox Code Playgroud)
Api 文档中的输出响应应如下所示:
responses:
200:
schema:
$ref: "#/definitions/Page<Building>"
Run Code Online (Sandbox Code Playgroud)
也在 Swagger UI 中作为示例:
{
"content": [
{ Building: "" }
]
}
Run Code Online (Sandbox Code Playgroud)
我找不到“responseContainer”的正确参数
Swagger 2 相当于一个responseContainer,它将Schema 包装在一个ArraySchema 中。对于返回 List<Foo> 的端点:
@ApiResponses(@ApiResponse(responseCode = "200", description = "List of Foos",
content = @Content(array = @ArraySchema(uniqueItems = false,
schema = @Schema(implementation = com.mycompany.Foo.class))
)))
Run Code Online (Sandbox Code Playgroud)
注意 uniqueItems 默认为 false,因此可以在上面省略。但是,如果您返回 Set 而不是 List,请显式将此值设置为 true。
参考文献: https: //docs.swagger.io/swagger-core/v2.1.1/apidocs/io/swagger/v3/oas/annotations/media/ArraySchema.html
| 归档时间: |
|
| 查看次数: |
2562 次 |
| 最近记录: |