1. ホーム
  2. swagger

[解決済み] Swagger/OpenAPI - $refを使用して、再利用可能な定義済みパラメータを渡す

2023-03-10 12:08:11

質問

例えば、次のようなパラメータがあるとします。 limit . これはあちこちで使われるので、更新する必要がある場合、あちこちで変更しなければならないのは面倒です。

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

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

どのように解決するのですか?

この機能はSwagger 2.0にすでに存在します。リンク先のチケットは、この機能の機能には影響しない、いくつかの特定のメカニズムについて話しています。

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

ここにその例があります -。 https://github.com/swagger-api/swagger-spec/blob/master/fixtures/v2.0/json/resources/reusableParameters.json - のように、limitパラメータを使っても

あなたの場合、こうしたいのでしょう。

# 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