91

のようなパラメータがあるとしましょうlimit。これはいたるところで使用されており、更新する必要がある場合にどこでも変更しなければならないのは面倒です。

parameters:
    - name: limit
      in: query
      description: Limits the number of returned results
      required: false
      type: number
      format: int32

$ref を使用してこれを別の場所で定義し、再利用可能にすることはできますか? 誰かが機能の変更または改善を望んでいることを示唆するこのチケットを見つけましたが、それが今日すでに存在するかどうかわかりません。

4

2 に答える 2

142

この機能は Swagger 2.0 に既に存在します。リンクされたチケットは、この機能の機能に影響を与えない特定のメカニズムについて説明しています。

最上位オブジェクト (Swagger オブジェクトと呼ばれる) には、parameters再利用可能なパラメーターを定義できるプロパティがあります。パラメータに任意の名前を付けて、パス/特定の操作から参照できます。最上位のパラメーターは単なる定義であり、仕様内のすべての操作に自動的に適用されるわけではありません。

ここでその例を見つけることができます - https://github.com/swagger-api/swagger-spec/blob/master/fixtures/v2.0/json/resources/reusableParameters.json - 制限パラメータがあっても。

あなたの場合、これをしたいでしょう:

# define a path with parameter reference
/path:
   get:
      parameters:
         - $ref: "#/parameters/limitParam"
         - $ref: "#/parameters/offsetParam"

# define reusable parameters:
parameters:
   limitParam:
      name: limit
      in: query
      description: Limits the number of returned results
      required: false
      type: integer
      format: int32
   offsetParam:
      name: offset
      in: query
      description: Offset from which start returned results
      required: false
      type: integer
      format: int32
于 2014-11-19T09:24:20.893 に答える