как установить одно значение для нескольких ключей в объекте YAML - PullRequest
0 голосов
/ 18 декабря 2018

Насколько я знаю, нет способа прикрепить несколько ключей к одному значению в паре {ключ: значение} в YAML.Я новичок в документации Swagger (OpenAPI 3.0), и мне интересно, возможно ли как-то объединить мои значения вместе.Например, я работаю с документацией по API REST, и когда я хочу перечислить несколько ответов, не переписывая их каждый раз, у меня есть следующее:

paths:
  /users:
      post:
//some additional information here
        responses:
          '500':
//and for example here I want to add not only 201 status code but also others
                description: >-
                  Something went wrong on back end
//however I have to do something like this (writing them all)
          '502':
                description: >-
                  Something went wrong on back end
//and so on..

Каковы наилучшие методы для преодоления этого?Может быть, у меня плохая точка с самого начала.

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

OpenAPI 3.0 поддерживает диапазоны ответов '1XX' - '5XX', которые можно использовать вместо индивидуального перечисления кодов:

    responses:
      '5XX':
        description: Something went wrong on back end

Если вы все еще хотите перечислить коды ответов по отдельности, но они имеют одинаковыеdescription и schema, вы можете $ref общее определение ответа следующим образом:

    responses:
      '501':
        $ref: '#/components/schemas/BackendErrorResponse'
      '502':
        $ref: '#/components/schemas/BackendErrorResponse'

components:
  responses:
    BackendErrorResponse:
      description: Something went wrong on back end
      content:
        application/json:
          schema:
            ...

В хранилище Спецификаций OpenAPI также есть запрос на расширение, позволяющий повторно использовать description в разныхответы .

0 голосов
/ 18 декабря 2018

Вы можете использовать якоря и псевдонимы:

path:
  /users:
    responses:
      '500':
        description: &desc1 >-
          Something went wrong on back end
      '502':
        description: *desc1
...