Есть ли способ определить один и тот же путь несколько раз с изменением параметров?

Мне нужно определить службу, которая используется несколько раз с изменением параметров. Мне нужно определить это несколько раз, но всякий раз, когда я определяю ее во второй раз, она автоматически перезаписывает предыдущую. Вот как я это определил. Это первое определение:

  /sevice :
    post:
      summary: Service ABC
      description: |
        This service is used to get ABC.
      parameters:
        - name: XYZ
          in: query
          description: '8'
          required: true
          type: number
          format: integer
        - name: LMN
          in: query
          description: '2'
          required: true
          type: number
          format: integer
      tags:
        - ABC
      responses:
        '200':
          description: An array of products
          schema:
            type: array
            items:
              $ref: '#/definitions/ABC'
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'

Это второе определение:

  /sevice :
    post:
      summary: Service ABC
      description: |
        This service is used to remove ABC.
      parameters:
        - in: body
          name: jsonData
          description: Object that needs to be sended to the store.
          required: true
          schema:
            $ref: '#/definitions/PQR'
      tags:
        - ABC
      responses:
        '200':
          description: An array of products
          schema:
            type: array
            items:
              $ref: '#/definitions/LMN'
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'

Возможно ли, чтобы один и тот же путь отображался более одного раза в одной спецификации API?


person Paypal Paypal    schedule 28.03.2016    source источник


Ответы (1)


Нет, это невозможно. Я пытался сделать это, но при проверке с помощью Редактора Swagger возникает ошибка дублирования, так как мой API создан по определению Swagger. Мое предложение состоит в том, чтобы добавить путь с именем для этой службы, например. для определений один /service/get или /service/delete.

Кроме того, я вижу, что ваше второе определение предназначено для удаления ресурса, а первое — для получения ресурса. Вы можете использовать второй метод DELETE HTTP, а первый — метод GET HTTP и объединить два определения вместе. Таким образом, ваш путь одинаков и может выполнять разные функции HTTP. Эта ссылка – это список всех параметров методов HTTP, которые вы можете использовать. POST обычно используется при создании нового ресурса.

Эта проблема является открытой проблемой (отмеченной 182) на Github OpenAPI.

Надеюсь, это поможет!

person Neil Davis    schedule 15.07.2016