java - Swagger 引用对 Spring 对象的响应,使用 Swagger 进行分页

标签 java spring rest spring-boot swagger

在我的项目中,我使用 Swagger 模板生成所有 Controller 端点,我正在尝试实现一个返回 Spring 的 Page 对象而不是列表的端点。

这就是我所拥有的:

responses:
        200:
          schema:
            type: array
            items:
              $ref: '#/definitions/Metadata'

它会生成:

public ResponseEntity<List<Metadata>> getMetadataList()

但我希望 Swagger 使用 Spring 的 Page 而不是列表生成响应:

public ResponseEntity<Page<Metadata>> getMetadataList()

如何在 Swagger 模板中引用 Spring 的 Page 对象?我是否必须定义自己的 Page 对象,然后将 Spring 的 Page 映射到我的对象?

最佳答案

附加了生成的 swagger api 文档和 Page 对象。

swagger

responses:
        '200':
          description: OK
          schema:
           $ref: '#/definitions/Page%C2%ABMetadata%C2%BB'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
definitions:
  Metadata:
    type: object
    properties:
      data:
        type: string
    title: Metadata
  Pageable:
    type: object
    properties:
      offset:
        type: integer
        format: int64
      pageNumber:
        type: integer
        format: int32
      pageSize:
        type: integer
        format: int32
      paged:
        type: boolean
      sort:
        $ref: '#/definitions/Sort'
      unpaged:
        type: boolean
    title: Pageable
  Page«Metadata»:
    type: object
    properties:
      content:
        type: array
        items:
          $ref: '#/definitions/Metadata'
      empty:
        type: boolean
      first:
        type: boolean
      last:
        type: boolean
      number:
        type: integer
        format: int32
      numberOfElements:
        type: integer
        format: int32
      pageable:
        $ref: '#/definitions/Pageable'
      size:
        type: integer
        format: int32
      sort:
        $ref: '#/definitions/Sort'
      totalElements:
        type: integer
        format: int64
      totalPages:
        type: integer
        format: int32
    title: Page«Metadata»
  Sort:
    type: object
    properties:
      empty:
        type: boolean
      sorted:
        type: boolean
      unsorted:
        type: boolean
    title: Sort

关于java - Swagger 引用对 Spring 对象的响应,使用 Swagger 进行分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56595954/

相关文章:

java - 检查 map 的空值

java - 哪个是抽象类? Oracle考试的一道题

java - 其他类中的 Spring 和 Hibernate 注入(inject)

java - 获取 Spring Boot REST API 的 NumberFormatException

java - 使用 Spring AOP 获取方法参数?

java - 如何为 feign bean 字段设置 JsonProperty 名称

javascript - XMLHttpRequest 错误 - "No ' Access-Control-Allow-Origin' header 出现在请求的资源上。”

java - 为什么 getClass().getProtectionDomain().getCodeSource().getLocation().getPath() 在编译后的最终产品中不起作用?

java - Spring 每 15 分钟执行一次方法

java - RestyGWT 内容参数必须是一个类