📚

Postmanでモックサーバーを使おう

2023/11/09に公開

本日の勉強会

https://postman.connpass.com/event/295537/

このセッションが終わるまでに、次のことができるようになります。

  • 複数チームにまたがる機能開発の現場でよくある問題について議論する
  • モッキングによってどのように非同期開発が可能になるか説明する
  • Postman を使ったモック機能を理解する
  • Postman を使ってアプリの処理フロー(リクエストと期待するレスポンス、エラー処理など)を設計する

ということなので、しっかり勉強していきます。

モックサーバーの用途

https://learning.postman.com/docs/designing-and-developing-your-api/mocking-data/setting-up-mock

当然だがモックなのできちんと動作するものではない。
とはいえ、動きが見えるものが出来ると精神衛生面は非常に良い。

この時のモックサーバーのデータや仕組みについて考えてみる。
モックサーバー内にサンプルデータ(コレクション=リクエスト数)に応じたモックレスポンスを返却させる。

とりあえずモックサーバーを使っていくには、

PM・バックエンド フロントエンド
コレクション・リクエスト・レスポンスを作成
↑に基づきサーバーを建てる
ドキュメントを提供
フィードバック

というフローで並行開発を実現させている。

開発(設計)の課題

開発プロセス

コードファーストかAPIファーストか

  • コードファーストだとAPIテスト/ドキュメント整備が後手になる(=並列開発が難しい)
    • 結局ドキュメント不足(不備を含む)やAPIの発見(サービス開発において利用するAPIの選定)が困難になりがち
    • フィードバックのタイミングが遅れる(インテグレーションテストのリスク)
  • APIデザインファーストだとAPIの仕様を固めてからコードに着手する
    • 仕様さえ固めればフロントエンドにも渡せるのが大きなメリット
      • 誤りなどはこの段階でフィードバックも可
    • 知見が必要(支援ツール: OpenAPI,Postmanなど)

どちらが良い、という話ではなく開発のタイミング(主にフロントエンド・バックエンドとの同期)の問題。

テストをどうするか

  • テストピラミッドの問題
    • コスト(時間・件数)
    • 不確実要素

モックサーバーハンズオン

環境構築: 通常のPostman運用(モックサーバーを建てる前工程は同じく実施)

https://www.postman.com/

にログイン(要アカウント)
画面左上のWorkspaces➡️任意のワークスペース名(デフォルトだとMy Workspace)を選択
画面遷移後、同じく左上「+」ボタンから「Blank Collection」を選択してコレクション名を追加
作ったコレクション名を右クリックして「Add Request」でいつもの画面。

なお、作ったテストデータは画面右下「Save as example」で保存できる。

環境構築: モックサーバーを建てる

またワークスペースに戻って右クリック「Mock Server」で各項目を選択

Q&A

  • Q. リクエスト時にモックサーバーを参照({{url}})して存在しないパラメータを入れると456になったがなんで?
    • A. URLマッチングにあたっているから。
    • まずエラーにならない。とりあえずデータを返している。➡️バグに気づけないのでは?
    • モックサーバーのアクセスログからどういうリクエストをしたのか見ることはできるので、使い方を周知すれば見る事ができる
      • なお、モックサーバー(コレクション)は共有する事で他のアカウントユーザーからでも閲覧ができる。

これはやらないと分からないね。
教材をよく確認しながら進めよう。

Discussion