Closed2
OpenAPIドキュメントを基にMockサーバを立てる検討
mockサーバをたてる場所
- 結論
- ローカル
- 候補
- ローカル
- リモート
- API Gateway
- 検討(デメリットで比較、メリットはデメリットの逆)
- ローカル
- 各自で初期構築する必要がある
- コンテナ化しても良さそう
- リモート
- 初期構築が若干手間、デプロイの手間もある
- API Gateway
-
https://techblog.zozo.com/entry/swagger_api_mock
⇒「API Gatewayを使う」 - 設定が大変そう
-
https://techblog.zozo.com/entry/swagger_api_mock
- ローカル
使用ツール候補
- Prism
- たぶん主流っぽい
- 開発元がStoplightなのでEditorと一緒で安心
- https://stoplight.io/open-source/prism/
- https://meta.stoplight.io/docs/prism/ZG9jOjk1-http-mocking
- https://future-architect.github.io/articles/20210410/
- https://qiita.com/itouuuuuuuuu/items/f5f6dd31b9e9038e08af
- 実際に使ってみて
- コマンド1行で立ち上がるので使いやすい
- Stoplight Studio
- Editorの1機能にMockがある
- 内部的にPrismを使っている
- https://meta.stoplight.io/docs/studio/ZG9jOjc2-mock-servers
- 実際に使ってみて
- openapi.ymlに記述しているexampleをレスポンスにすることはできなかった
- 公式ドキュメントでおそらく言及されていないが、Prismの設定を自由に変えることはできなさそう
- そもそもそのような設定画面が見当たらない
- exampleの代わりに自動生成された値が返ってくる
- 公式の言葉で言うと
Dynamic Generation
された値が返る
- 公式の言葉で言うと
- 今回は定義したexampleを返したいのでお見送り
- SwaggerCodegen
- API Sprout
ポートの問題
発生した事象
prism mock -p 8080 openapi.yml
で起動する。
http://127.0.0.1:8080/api/hoge
ではMockサーバにアクセスできるが、http://localhost:8080/api/hoge
ではアクセスできない。
原因
APIサーバのDockerコンテナが8080を使っていた
思い込み
APIサーバのDockerコンテナでアプリを起動したら8080が使われるかと思っていた。
実際には、コンテナ起動時点で使っていた
expose:
- "8080"
/etc/hosts
で127.0.0.1 localhost
を指定しなくてもアクセスできる。
最初指定していないのが原因かと思った。。
このスクラップは2021/08/10にクローズされました