Postmanのセットアップ Postmanにはデスクトップアプリ版とブラウザで動くWeb版があります。この記事では、インストール不要ですぐ試せるWeb版を使います。
Postman公式サイト にアクセスします。「Sign Up for Free」または「Try the New Postman」ボタンから無料アカウントを作成します。メールアドレスのほか、Googleアカウントでも登録できます。 サインイン後、ブラウザ上に操作画面が表示されます。 初回はワークスペースの選択を求められることがあります。ワークスペースはリクエストやコレクションを保存する作業単位で、最初から用意されている「My Workspace」を使えば問題ありません。 見つからないときは、左上のホームアイコンをクリック→「Workspaces」から確認できます。
リクエストを作成するには、画面上部のタブ列にある「+」をクリックして新しいリクエストタブを開きます。
タブを開くと、リクエストを組み立てる基本要素が並びます。
左のドロップダウン:HTTPメソッド(GET / POST など)を選ぶ場所です。初期値はGETです。 中央の入力欄:リクエストの送信先URL(エンドポイント)を入力します。 右の「Send」ボタン:リクエストを送信します。 画面下部:送信後にレスポンスが表示される領域です。 (なお、Web版は「Cloud Agent」という仕組み経由でリクエストを送信します。 今回のような公開APIであれば初期設定のままで問題なく、送信時に接続エラーが出た場合のみ、画面下部の接続先がCloud Agentになっているかを確認してください。)
[GET編] PostmanでPokeAPIを操作してみる まずはデータを取得するGETから試します。題材のPokeAPIは、ポケモンのデータをJSONで返してくれる公開APIで、アカウント登録もAPIキーも不要です。
リクエストの説明 メソッドのドロップダウンがGETになっていることを確認し、URL欄に次のエンドポイントを入力します。
https://pokeapi.co/api/v2/pokemon/pikachuURL末尾の pikachu が、取得するリソースの指定です。 ここを charizard や ditto など別のポケモン名に変えれば、そのポケモンのデータが返ります。入力できたら「Send」を押します。
これで「PokeAPIのこのエンドポイントに、GETでリクエストを送る」という指定が完成します。GETはデータを取得するだけなので、設定するのはメソッドとエンドポイントの2つだけです。
レスポンスの説明 送信すると、画面下部のレスポンス領域にJSONが表示されます。右上の「200 OK」はステータスコードで、リクエストが成功したことを示します。その隣には応答時間(Time)とデータサイズ(Size)も表示されます。
本文はJSON形式で、"キー": 値 の組み合わせが並んでいます。冒頭には "abilities"(とくせい)が並び、static や lightning-rod といったピカチュウの特性が確認できます。少し読み進めると、次のような値も含まれています。
"id": 25,
"name": "pikachu",
"height": 4,
"weight": 60JSONでは、{ } で囲まれた1件のまとまりをオブジェクト 、[ ] で囲まれた並びを配列 と呼びます。先ほどの "abilities": [ ... ] は、特性が複数入った配列です。レスポンスのJSONは、このオブジェクトと配列の入れ子として読み解けます。
PokeAPIのレスポンスは項目が多く数千行になりますが、全体を読む必要はありません。目的の項目だけ確認したいときは、レスポンス領域で ⌘+F(WindowsはCtrl+F)を押し、キーワードで検索するとその箇所にジャンプできます。
なお、存在しないポケモン名を指定するとステータスコードは 404 Not Found になり、リソースが見つからなかったことを示します。ステータスコードはレスポンスの成否を判断する最初の手がかりになるので、200(成功)・404(対象なし)・500番台(サーバー側のエラー)だけでも覚えておくと役立ちます。
[POST編] PostmanでJSONPlaceholderを操作してみる 次はデータを送るPOSTです。PokeAPIはGET専用でPOSTを受け付けないため、ここではPOSTを試せる公開API「JSONPlaceholder」を使います。送られたデータを受け取り、作成結果を返す動きを安全に確認できるテスト用のAPIです。
リクエストの説明 GETと違い、POSTでは送信するデータ(リクエストボディ)を自分で用意します。手順は次のとおりです。
メソッドのドロップダウンをGETから POST に変更します。 URL欄にエンドポイント https://jsonplaceholder.typicode.com/posts を入力します。 URL欄の下の「Body」タブを開きます。ここが送信データを記述する場所です。 「raw」を選び、右端の形式を「Text」から「JSON」に変更します。 入力エリアに、送信するデータをJSONで記述します。 今回は、投稿を1件作成するデータとして次のJSONを送ります。
{
"title": "はじめての投稿",
"body": "PostmanからPOSTを送っています",
"userId": 1
}記述できたら「Send」を押します。Content-TypeなどのヘッダーはPostmanがJSON形式に合わせて自動で付与するため、この例では手動設定は不要です。
レスポンスの説明 レスポンスとして、次のようなJSONが返ります。
{
"title": "はじめての投稿",
"body": "PostmanからPOSTを送っています",
"userId": 1,
"id": 101
確認したい点は2つです。1つはステータスコードが 201 Created になっていること。 これはリソースが新しく作成されたことを示すコードです。もう1つは、送信したデータに "id": 101 という識別子が付与されて返っている点です。作成したデータにサーバーが管理用のIDを割り当てて返すのは、REST APIでよく見られる挙動です。
ただしJSONPlaceholderはテスト用のため、POSTを送っても実際にはデータは保存されません。 あくまで「作成された場合の応答」を返すだけで、同じIDで取得し直しても存在しない点には注意してください。POSTのリクエストとレスポンスの流れを確認する用途には十分です。
【補足】Curlコマンドとの棲み分け APIにリクエストを送る手段はPostmanだけではありません。実務でよく併用されるのが、ターミナルからHTTPリクエストを送るコマンド curl です。同じことができるなら、どちらを使えばよいのか整理しておきます。
Postmanが向いているのは、リクエストを画面上で組み立てながら仕様を探ったり、作ったリクエストをコレクションとして保存・共有したりする場面です。パラメータや認証を試行錯誤しながらAPIの動作を確認する用途に強く、チームでの共有やドキュメント化にも向いています。
一方のcurlは、コマンド1行で完結するため、シェルスクリプトやCIへの組み込み、SSH接続先のサーバー上での確認、手順を1行で共有したいときに便利です。GUIを立ち上げずにサッと叩けるのも利点です。両者は排他ではなく、探索や設計はPostman、自動化や再現はcurl、というように使い分ける/併用するのが実際のところです。
そしてPostmanには、組み立てたリクエストをcurlコマンドへ変換する機能があります。
画面右上付近にあるアイコンをクリックすると右側にサイドバーが開きます。 サイドバー上部のコードアイコンをクリックするとコードのタブ画面が開きます。 四角いアイコンをクリックするとクリップボードにコピーされます。 リクエストを開いた状態で画面右の「Code」から言語一覧を開き「cURL」を選ぶと、同じ内容のcurlコマンドが生成されます。 他の言語コマンドにすることも可能です。
たとえば、GET編で送ったリクエストは次のコマンドに相当します。
curl https://pokeapi.co/api/v2/pokemon/pikachuPOST編のリクエストであれば、次のようになります。
curl -X POST https://jsonplaceholder.typicode.com/posts \
-H "Content-Type: application/json" \
-d '{"title":"はじめての投稿","body":"PostmanからPOSTを送っています","userId":1}'-X でメソッド、-H でヘッダー、-d で送信データを指定します。POST編でPostmanが自動付与していたContent-Typeヘッダーも、curlに書き出すとこの -H の行として明示されます。 画面で設定した項目が、そのままコマンドのオプションに対応しています。まずはPostmanで組み立て、必要に応じてcurlへ書き出す、という流れが実務では扱いやすいでしょう。
おわりに Postmanを使うと、GETによるデータ取得もPOSTによるデータ送信も、コードを書かずに検証できます。エンドポイントとメソッドを指定してSendを押し、返ってきたステータスコードとレスポンスを確認する。APIの動作確認は、相手が何のAPIであってもこの繰り返しです。
実際の開発では、ここに認証(APIキーの付与など)やクエリパラメータの調整が加わりますが、いずれもPostmanの「Headers」「Params」タブで設定できます。今回の操作が土台になるので、気になるAPIのドキュメントを見ながら実際に叩いてみてください。
なお、こうしたAPIをはじめ、実務で使う開発スキルを体系立てて学びたい方に向けて、私が代表を務めるAIプログラミングスクール SiiD でも現役エンジニアの伴走のもとで学べる環境を用意しています。 興味があればSiiDのサービスページ・無料個別説明会ページ をのぞいてみてください。