LoginSignup
2
1

PostmanでのMock serverの立て方 (2024年5月UI)

Last updated at Posted at 2024-05-31

Postmanでは、HTTPリクエストを受け付けるモックサーバーを作ることができます。
ここでのゴールは、HTTP POSTを受け付けて { "Your payload is": "XXXX" } を返す、いわゆるEchoサーバーを作ります。

※ほかにも同様の記事があるのですがPostmanのUIは日々進化しているため、2024年5月時点でのやり方の記録です

Mock server (モックサーバー) メニューを出現させる

モックサーバーを作りたいワークスペース※1を開き、ワークスペースサイドバーを設定※2をクリック、モックサーバー を有効化。すると、サイドバーにモックサーバーが表示されます。

  • ※1 アカウント作成直後であれば My Workspace が対象になります
  • ※2 画面左のimage.pngがそれです

コレクションを作成 > リクエストを追加 > サンプルを追加という手順でも同様に進められるのですが、モックサーバー側から進むことでURLのランダム生成をしてくれるため、モックサーバーの作成から始める方が手間が少なくて良さそうです

モックサーバーの作成手順

  1. サイドバーのモックサーバー > モックサーバーを作成 を開く
    • コレクションを選択してモックを作成*では、リクエストメソッド一覧から POST を選択。この時POSTの行が自動的に増えます(GETの行は残りますが、実際はPOSTのみ作られます)。
    • その他のパラメータ(リクエスト URLレスポンスコードレスポンスボディ)は、この時点では設定せずに次に進みます。
  2. 設定 では、モックサーバーの名前を指定(以後、My1stMockServer)して、モックサーバーを作成に進みます。

これで、ともかくHTTP POST を受け取るモックサーバーができました。

リクエストを確認する

サイドバーのモックサーバー > My1stMockServer を開き、コレクションドキュメントを見るを開くと、cURLを始めとしたツール/言語によるリクエストサンプルが提示されています。実行してみましょう。

curl --location --request POST 'https://***.mock.pstmn.io/' --data ''

リクエストを実行した後、改めてサイドバーのモックサーバー > My1stMockServer を見てみると、ログが1行できていることが確認できます。

image.png

レスポンスボディを追加する

サイドバーのコレクション > My1stMockServer > POST > デフォルト と開いていくと、レスポンスボディが設定できる画面にたどり着きます。

ボディ に以下のように指定します。

{ "your payload is": "{{$body 'payload'}}" }

image.png

その後、右上の保存をクリックします。設定はこの時点で反映されます。

{{$body}} というのは、template helperです。詳しくはUsing template helperをご覧ください。
他にも {{$timestamp}} などの動的データを返してくれる変数が存在します。詳しくはGenerating random data with dynamic variablesをご覧ください。
※未加工のPOST BODY全体を得る方法を見つけることができませんでした(2024年5月現在)

POSTボディ付きリクエストを確認する

以下のように送信すると payload に設定したデータが返却されます。

curl --location --request POST 'https://***.mock.pstmn.io/' --data 'payload=Hello'
#=> { "Your payload is": "Hello" }

メソッドやパスの増やし方

Postmanのモックサーバーは、API ゲートウェイプロダクトのように、気軽にメソッドやパスの追加が可能です。

  1. サイドバーのコレクション > 2. My1stMockServer の三点メニュー(右側の "・・・" と表示されている部分) > リクエストの追加 で、新規リクエスト を追加できます
    • この時点で 新規リクエスト の名前変更をしておきましょう。後々の混乱が減少します。以後 2ndReq とします
  2. 2ndReq のメソッドを選択(例: GET)し、URL を入力するかテキストを貼り付け には {{url}}/ と入力します
    • {{url}} はコレクションの変数です
    • ここで {{url}}/foo とすれば GET https://***.mock.pstmn.io/foo で受け付けられます
  3. 2ndReq* の三点メニュー > サンプルを追加 で、2ndReq が追加できます

ここまでの操作は、それぞれ実行した時点で即時反映されます。

以後は、先ほどの POST で指定した時と同様にレスポンスボディを指定できます。

削除

モックサーバーは コレクションモックサーバー のそれぞれにいるので、それぞれ削除しましょう。これですっきり。

おわりに

シンプルなEchoサーバーであれば、簡単に作れます。複雑な条件分岐があるなら、ちゃんとAPIサーバーを立てたほうが良いでしょう。道具は適材適所ですね。

どんなことができるのかや、エンドポイント保護(x-api-key の利用など)は、公式ドキュメントをご覧ください。

EoT

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1