(prism)OpenAPI仕様書からモックサーバーを立てる
StopLightのprismというパッケージで実施することが可能
npmで起動したり、dockerコンテナ上にサーバーを立てることも可能
レスポンスを出し分ける
リクエストでヘッダーにPrefer
パラメータを追加することで、レスポンスを任意に出し分けることができる。
クエリパラメータでもできるらしいが、試してない。
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
にするとフォーマットに合わせて自動で生成されたレスポンスを返すようになる
- レスポンスされる値はリクエストのたびに変わる
- 詳細はこちら:https://docs.stoplight.io/docs/prism/9528b5a8272c0-dynamic-response-generation-with-faker
- jsのライブラリを使って生成している模様
参考