Реализация разбиения на страницы в определении Swagger для REST API - PullRequest
0 голосов
/ 06 декабря 2018

Я хочу реализовать разбиение на страницы в своем ответе REST API.А для DTO и контроллера я использую Swagger для генерации.Как я могу указать, что мне нужно нумерацию страниц для одного конкретного объекта.

А для нумерации страниц нужно ли снова и снова вызывать API (для каждого запроса страницы)?Не будет ли это слишком тяжелым для системы, поскольку API будет выполнять и другие функции (включая доступ к БД и хранение)?

1 Ответ

0 голосов
/ 13 марта 2019

Вы можете определить параметры для определения начального индекса и длины страницы.Ответ должен включать общее количество записей и нет.записей, отображаемых в данный момент.

Вот пример -

/orders:
    get:
      tags:
        - orders
      summary: Get details about the customer orders
      description: ''
      operationId: getOrders
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - name: customerid
          in: query
          description: Id of the customer 
          required: true
          type: string
          collectionFormat: multi
        - name: ordered
          in: query
          description: orderid for the order  
          required: false
          type: string
          collectionFormat: multi
        - $ref: "#/parameters/Startindex"
        - $ref: "#/parameters/Pagelength"
      responses:
        200:
          description: An array of customer orders
          schema:
             type: object
             allOf:
               - $ref: '#/definitions/PaginationResponse'
               - properties:
                   devices:
                     type: array
                     items:
                       $ref: '#/definitions/Order’
        '400':
          description: Invalid ID supplied
        '404':
          description: Customer not found
        '405':
          description: Validation exception


definitions:
……
…..
 PaginationResponse:
    type: object
    properties:
      totalrecords:
        type: number
      displayrecords:
         type: number
    xml:
       name: PaginationResponsedata


parameters:
    Pagelength:
      name: pagelength
      in: query
      description: Number of records to return
      type: number
    Startindex:
      name: startindex
      in: query
      description: Start index for paging
      type: number
...