Можете ли вы составить определения чванства из нескольких $ refs? - PullRequest
0 голосов
/ 10 февраля 2019

Надеемся, что этот вопрос остается одним и тем же.

Я создаю спецификацию чванства и хочу иметь возможность не только повторно использовать определения оптом (то есть, что делает $ref),но создайте эти определения из еще более простых ссылок.

Например, скажем, я хочу описать концепцию assetId как параметра и ответа.Я мог бы сделать что-то вроде этого:

parameters:
  assetId:
    name: assetId
    in: path
    description: Identifier of the asset
    type: integer
responses:
  assetId:
    description: Identifier of the asset
    type: integer

и потянуть #/parameters/assetId и #/responses/assetId для их соответствующих разделов, но у меня все еще есть неизбежное дублирование некоторых свойств (а именно description иtype)

То, что я хотел бы сделать, это разбить каждую из них на атомарные части, а затем составить определения параметров и ответов в первую очередь из этих ссылок, что-то вроде:

swagger: "2.0"
descriptions:
  assetId:
    descriptions: Identifier of the assetId
schemas:
  assetId:
    type: integer
    format: int32
examples:
  assetId:
    example: 205778
paths:
  /assets/{assetId}:
    get:
      parameters:
        - name: assetId 
          in: path
          $ref: '#/schemas/assetId'
          $ref: '#/descriptions/assetId'
          $ref: '#/examples/assetId'    
      responses:
        '200'

и этот последний раздел по существу оценивается как:

  ...
  parameters:
    - name: assetId 
      in: path
      type: integer
      description: Identifier of the asset
      format: int32
      example: 205778 

... но это не работает;ясно выдает ошибку, что у меня есть дубликат ключа с $refs, но я не знаю, как еще подойти к нему.Может кто-нибудь показать мне, как сделать такой вид атомарного состава определений чванства?

ПРИМЕЧАНИЕ: я использую сваггер 2.0 на работе, так что если это можно сделать там, это было бы мило, но даже если это тольковозможно в 3.0, я все еще хотел бы знать.

...