Open3

(prism)OpenAPI仕様書からモックサーバーを立てる

ふじしろふじしろ

レスポンスを出し分ける

リクエストでヘッダーにPreferパラメータを追加することで、レスポンスを任意に出し分けることができる。
クエリパラメータでもできるらしいが、試してない。

https://docs.stoplight.io/docs/prism/beeaad4dc0227-prism-cli#modifying-responses

Prism's behavior in looking for the response for your request can be modified with a series of parameters that you can either pass through the Prefer header or through a query string parameter.
Keep in mind, all the query parameters need to be prefixed with double underscores (__). If the Prefer header parameter is code, the query string will be __code.
(DeepL訳)
Prismは、Preferヘッダまたはクエリ文字列パラメータを使用して、リクエストに対する応答を検索する一連のパラメータを変更できます。
すべてのクエリパラメータの先頭にダブルアンダースコア(__)を付ける必要があることに注意してください。 Preferヘッダーのパラメータがcodeの場合、クエリー文字列は__codeになります。

出し分け方法

ヘッダーのPreferパラメータに、{操作対象}={内容}という形式で指定することができる。
これらの値は組み合わせて活用することができる。

例えば、ステータスの指定 + 静的レスポンスの指定の組み合わせで、ステータスコード別にレスポンスを指定することができる。

ステータスの指定(Prefer: code={status code}

指定のステータスコードのレスポンスを返す。

  • 未定義のステータスコードを指定してみたところ404が返ってきた。

静的レスポンスの指定(Prefer: example={example key}

指定のキーに対応するexampleを返す。

  • OpenApiSpecificationでは、exmaplesで名前をつけて複数のexampleを定義できるので、ここで指定したキー名を{example key}に入れればOK

動的レスポンスモード(Prefer: dynamic={true | false}

trueにするとフォーマットに合わせて自動で生成されたレスポンスを返すようになる