🦁

Postman Getting Started !!! アカウント開設と簡単なテスト

2025/03/03に公開

Postman_(software).png
PostmanとはAPIを設計、構築、テスト、コラボレーションするためのAPIプラットフォーム的なサービスです。
最近日本にもチームが立ち上がりかなりいろんなカンファレンスなどで情報発信をされていてユーザーも増えているのではないでしょうか。

このアカウントではPostmanを色々触りながら勉強していきたいと思います。
この記事ではまずはアカウント開設をやってみます。

アカウント開設

  1. https://www.postman.com/ にアクセスを行います。
  2. 画面上部のSign Up for Freeをクリックします。
    image.png
  3. 必要な情報を入力してCreate Free Accountをクリックします。
    image.png
  4. 次の画面でも必要な情報を入力して続けるをクリックします。
    image.png
  5. Workspaceが起動しました。この画面でいろいろな操作が可能となります。
    image.png

簡単なテスト

初回ですのでまずは簡単なテストを行います。
Send an API request をクリックします。
image.png
image.png

テストメッセージを投げる先が必要です。
https://requestcatcher.com/
にアクセスを行います。
image.png
適当な名前を入れてGet startedをクリックします。
データ待ちの画面になります。
image.png

この状態でPostmanから値をまずはPOSTします。
ドロップダウンからPOSTを選択し以下のように情報を入力し送信ボタンを押します。
image.png
request catcher の画面でPOSTされた値を受け取ったことがわかります。
image.png
ヘッダータブではヘッダーなどを色々変更したり追加できるのでテストにとても便利です。
image.png
image.png

リクエストボディも同様に操作が可能です。
image.png
image.png

Postman-Token

Postman-Tokenという見慣れないヘッダーが出力されています。どうもリクエストごとに一意のようです。これは毎回リクエストが一意であることを担保するためのPostman独自の仕組みです。
例えばテストを行うアプリケーションレイヤーがキャッシュの仕組みを持っていたと仮定します。その際Postman-Tokenが無ければ、アプリはクライアントリクエストに対してキャッシュの結果をレスポンスとして戻すため、毎回テストの度にキャッシュをクリアするなどの手間が増えますが、Postman-Tokenを毎回のリクエストに一意の値として付与することでキャッシュレイヤをバイパスできます。
例えばAWSの Amazon API Gateway などはAPIリクエストに対するキャッシュのメカニズムを提供しています。Postman-Tokenがあることでこのキャッシュをバイパスさせることが出来ます。
この値を固定にしたい場合は以下のようにヘッダーで固定値を投入しておけば、キャッシュメカニズムのテストが可能となります。
image.png

コードスニペット

image.png
画面右側の</>をクリックするとcurlコマンドを出力してくれます。これによりVSCodeなどでのテストも可能です。

curl --location 'https://kameman.requestcatcher.com/?myname=kameman' \
--header 'User-Agent: KamemanTest' \
--header 'X-Custome-Kameman: fromPostman'

当然ですがこの場合Postman-tokenは付与されません。

HTTP/1.1 200 OK
Accept-Ranges: bytes
Content-Length: 1549
Content-Type: text/html; charset=utf-8
Last-Modified: Sun, 20 Nov 2022 19:48:09 GMT
Date: Tue, 02 Jul 2024 11:54:03 GMT
Connection: close

<html><head><title>request catcher</title><meta content="dark light" name="color-scheme"><link href="https://fonts.googleapis.com/css?family=Ubuntu+Mono|Source+Code+Pro|Cousine|Open+Sans:400,300,600" rel="stylesheet" type="text/css"><link rel="stylesheet" href="assets/static.da0603e4.css?v=0.2"><script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script><script type="text/javascript" src="assets/catcher.595c1f61.js"></script></head><body> <div id="page"> <div id="content"> <div id="header"> <h1>request catcher</h1> </div> <div id="selector"></div> <div id="no-requests"> <div class="message">No requests have been received yet :(</div> <div class="try-it"> <span class="code"> curl -X POST -d 'Hello World!' https://<span id="hostname">requestcatcher.com</span>/test </span> </div> </div> <div id="requests"></div> <div class="clear"></div> </div> <div id="referral"><a href="https://m.do.co/c/fd00053f4fc6" target="_blank">Hosted on <strong>DigitalOcean</strong>. Get a $200 credit and support Request Catcher.</a></div> </div> <script>!function(e,a,t,n,g,c,o){e.GoogleAnalyticsObject=g,e.ga=e.ga||function(){(e.ga.q=e.ga.q||[]).push(arguments)},e.ga.l=1*new Date,c=a.createElement(t),o=a.getElementsByTagName(t)[0],c.async=1,c.src="//www.google-analytics.com/analytics.js",o.parentNode.insertBefore(c,o)}(window,document,"script",0,"ga"),ga("create","UA-55875288-1","auto"),ga("send","pageview");</script> </body></html>

Discussion