responseContainer 的 Swagger 2 注解是什么?

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”的正确参数

Gle*_*zza 7

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