初めてPostmanを使ってみた記録
- Postmanをインストールする
- リクエストを整理するためのCollectionsを作成する
- 環境変数を作成する
- 認証情報をリクエストにくっつける
- リクエストをAPIにおくる
- セッションを設定する(ここは結果としてうまくいきませんでした、またいつか挑戦したいです。)
Postmanをインストールする
リクエストを整理するためのCollectionsを作成する
これからPostmanを使っていくといろんなリクエストを作ることになります。そんなたくさんのリクエストを整理するためのフォルダのようなものがCollectionです。
Postman's collection folders make it easy to keep your API requests and elements organized.
- [Cllections] > [+New Collection] > [Name]にAPIがわかるような名前を指定 > [Create]ボタンでCollectionを作成する
- 作成したCollectionの右にある[...] > [Add Folder] > [Name]にローカル環境がわかるような名前を指定 > [Create]ボタンでフォルダを作成する
Collectionsにリクエストを追加する
- 環境
- Windows10 Pro バージョン1909
- Postmat v7.36.1
APIにつなぐには認証が必要です。認証に何を使うかAPIによって異なります。初めてのリクエストのサンプルとして、認証してトークンを取得します。
- 作成したフォルダの右にある[...] > [Add Request] > [Name]にやることがわかるような名前を指定 > [Save to {フォルダ名}]ボタンで作成する
- APIに合わせて[Parameters]や[Headers]を設定する
- [Send]ボタンでリクエストをおくると[Body]にレスポンスが表示される
環境変数を作成する
APIのURLやらユーザ名やらリクエストにはよく使うものがあります。そんなものは環境変数にして便利に使えるようにします。
- URLやパラメータの値などで
{{変数名}}
の形式で記載すると設定した値が利用される
なお、INITIAL VALUE と CURRENT VALUE の違いですが、Postman のサーバに情報が送られるか否かになります。
チームでテストしていたり、複数台の PC でテストするときは INITIAL VALUE を使うと便利なのかもしれません。 ですが、検証用 PC は 1台しかないですし、私はボッチですしおすし。(・ω・) セキュリティを高めるためにもっ!CURRENT VALUE を使っています!!! セキュリティを高めるためだからねっ!(大事なことは二度言うスタイル)
任意のCllection専用に環境変数を設定できます。
Postman は変数を使うことができます。変数には Global/Collection/Environment 変数があり、Global は Postman 全体で利用できる変数。Collection は Collection レベルで参照できる変数。Environment は各 Environment(タブ)で利用できる変数です。
- 作成したCollectionの右にある[...] > [Edit]でCollectionの設定ダイアログを開く
- [Variables]タブでCollection専用の環境変数を設定する
認証情報をリクエストにくっつける
APIにつなぐときに毎回認証情報が必要となることはよくあります。その認証情報をリクエストに自動でくっつけられるようにします。
リクエスト単位で認証を設定することもできますが、API単位でCollectionを作って、API単位で設定することもできます。どちらも[Authorization]タブで設定します。
ヘッダーにBearerトークンをくっつける
先ほどのように取得したトークンをリクエストに設定して認証できるようにします。
Postman を複数環境で使う場合にアクセストークン取得方法を簡略化する | Developers.IOを参考に設定していきます。
Bearerトークンを直接設定することもできるようですが、トークンの期限切れとなった時に手動で再設定するのは面倒くさいのでOAuth2.0で設定しました。
リクエスト単位ではなくCollection単位で認証を設定した場合は、各リクエストの[Authorization]タブの[Type]には「Inherit auth from parent」を設定します。
パラメータにAPIキーをくっつける
認証情報によってはパラメータにくっつけることもあります。
例えば政府統計の総合窓口(e-Stat)のAPIではアプリケーションIDをappId
リクエストパラメータに毎回指定する必要があります。
各APIを利用するには、アプリケーションIDを必ず指定する必要があります。利用登録を行い、アプリケーションIDを取得して下さい。
Collection共通の認証設定としてe-StatのAPIへのリクエストにアプリケーションIDをくっつけます。
リクエストをAPIにおくる
ここまでで覚えたことを使っていろんなAPIを使ってみます。
パスパラメータを指定する
ここではBacklogAPIのプロジェクトの状態一覧の取得 | Backlog Developer API | Nulabをやってみます。
パスパラメータはAPIのエンドポイントのパスに設定されるパラメータです。
URL /api/v2/projects/:projectIdOrKey/statuses
「プロジェクトの状態一覧の取得」の場合はprojectIdOrKey
がパスパラメータになります。
Parameter Name | Type | Description |
---|---|---|
projectIdOrKey | String | Project ID or Project Key |
- (事前準備)使っているBacklogでAPIキーを発行する
- Postmanを起動する
- Backlog用にCollectionsを作成する
- URLとして
{{URL}}/projects/:projectIdOrKey/statuses
を入力するとパスパラメータの入力欄が表示される - パスパラメータに取得したいプロジェクトIDを指定する
- [Send]ボタンでプロジェクトの状態一覧の取得 | Backlog Developer API | Nulabの「レスポンスボディ」みたいなのが取れるか確認する
配列形式のクエリパラメータを設定する
Backlog APIを使って課題一覧の取得 | Backlog Developer API | Nulabをやってみます。
パラメータで配列を指定することがあります。例えばプロジェクトIDの配列する場合にはパラメータ名がprojectId
ではなくprojectId[]
となり[]
がくっ付きます。
今回使ってみる「課題一覧の取得」ではクエリパラメータのに配列を指定します。
以下は「課題一覧の取得」クエリパラメータの一部です(出典 : 課題一覧の取得 | Backlog Developer API | Nulab)。[]
がついているのが配列で、[]
がついてないのが配列でないものです。
パラメーター名 | 型 | 内容 |
---|---|---|
projectId[] | 数値 | プロジェクトのID |
issueTypeId[] | 数値 | 種別のID |
...省略... | ...省略... | ...省略... |
keyword | 文字列 | 検索キーワード |
- 使っているBacklogでAPIキーを発行する
- Postmanを起動し、Backlog用にCollectionsを作成して環境変数や認証情報を設定する
- 「課題一覧の取得」用のGETリクエストをCollectionに作成する
- Query Paramsの[KEY]に
projectId[]
を、[VALUE]に1つ目のプロジェクトIDを入力する - 次の行に[KEY]に
projectId[]
を、[VALUE]に2つ目のプロジェクトIDを入力する - 他のクエリパラメータを設定する
- [Send]ボタンで課題一覧の取得 | Backlog Developer API | Nulabの「レスポンスボディ」みたいなのが取れるか確認する
セッションを設定する(ここは結果としてうまくいきませんでした、またいつか挑戦したいです。)
呼び出すAPIによっては、画面でログインしてそのセッションを設定て呼び出さねばならないことがあります。そんなときのやり方をやってみました。
Postman InterceptorをChromeに追加する
4. Interceptor(https://www.getpostman.com/docs/capture)
Interceptor機能はChromeを利用して、ブラウザ内で発生したリクエストを自動でPostman Historyに登録する機能です。
- Postman Interceptor - Chrome ウェブストアを表示する
- ピンマークを押下するChromeのツールバーにアイコンが表示される
PostmanでリクエストとCookieをキャプチャする
- 右上にある衛星アイコンでダイアログを表示 > [Cokies] > [Install Interceptor Bridge]でInterceptor Bridgeをインストールする
- [Request] > [Source] > 「Interceptor」選択 > [Capture Requests] > ON > [Save Requests to] > 設定対象にしたいCollectionなどを設定
- [Cokies] > [Capture cookies] > ON > [Domains] > 対象のドメインを入力 > [Add Domain]ボタンで追加