みなさん、今日も元気にAPI開発していますか?
最近社内勉強会で改めてPostmanについて説明したら
意外と機能を知らない人が多かったので
API開発で色々便利な機能満載のPostmanを
API Clientとしての機能をメインに紹介しようと思います。
Postman is 何?
Postman, Inc.が開発しているAPI開発コラボレーションツールです。
API Client機能やチーム開発の共有、MockServerの作成機能、自動テスト機能などがあります。
弊社ではローカルでの開発の振る舞いテストで主に使用しています。
インストール方法
mac(Homebrew-cask)
Homebrew-caskでインストール可能です。
$ brew cask install postman
mac & windows
こちらのリンク先のDownload the Appをクリックしてダウンロードしてインストールしてください。
新規設定
画面左上の[New]をクリックして新規の設定を行う
BUILDING BLOCKS
Request:新規でリクエストを作成する。
Collection:リクエストのフォルダを作成する。
Environment:Postman上の環境変数の設定を行う。
ADVANCED(ログイン後の機能)
API Documentation:ドキュメントを作成する。ログイン後のページで共有される。
Mock Server:リクエストのモックを作成する。
Monitor:自動テストの設定、パフォーマンスチェックを行う。
メイン画面
①API名
②APIの説明
③APIのメソッド・URL
④リクエストの設定
⑤リクエストの設定詳細項目
⑥環境変数設定
⑦APIのリクエスト例
⑧クッキーの設定・別媒体でのリクエストサンプル
リクエストの設定
Params
APIのqueryパラメータとpathパラメータを設定する。
pathパラメータはURL中に:param_name
で設定、queryパラメータは通常のGETパラメータなので?param_name=value
の形で定義する。
例えばhttp://example.com/test/:test_id/?param=test
の場合は図のようになる。
Authorization
APIを使用する際に認証が必要な場合などに設定する。
Headers
リクエストのヘッダーの設定を行う。Authorizationにauthorizeヘッダーを設定している場合はこちらには不要です。
Body
リクエストのボディの設定を行う。
pre-request script & tests
Intro to scripts | Postman Learning Center
リクエスト送信時に前処理、後処理を簡易的ですが実装できます。
以下にちょっとした一例を書いておきます。
// 環境変数から値を取得する var ttl = pm.environment.get("TOKEN_TTL") var now = Date.now() if (now > ttl) { // throw new Errorされた場合、処理はそこで止まります throw new Error("No available token set. Please set environment TOKEN and TOKEN_TTL") }
var refresh = false // レスポンスのステータスコードが200かチェックする pm.test("Status code is 200", function () { pm.response.to.have.status(200); refresh = true }); if (refresh) { // 環境変数のトークンを更新する console.log('token refresh') pm.environment.set("TOKEN", pm.response.json().token); pm.environment.set("TOKEN_TTL", Date.now() + (3600 * 1000)); }
環境変数設定
環境変数の切り替えを行うことができます。
こちらで設定した値はpre-request script,testsで
pm.environment.get("VALUE_NAME") // 取得 pm.environment.set("VALUE_NAME", "value") // 更新
のような形で操作できる他
{{URL}}/test/
のようにURLやパラメータ中に{{VALUE_NAME}}
の形で埋め込むことができます。
APIのリクエスト例
APIのリクエスト例を保存することができ、簡単に呼び出すことができます。
別媒体でのリクエストサンプル
CodeをクリックすることでPHP
,Ruby
,Go
での実装サンプルが確認することができます。
別の環境で確認するときなどにとても重宝します。
エクスポート
これらの設定は全てインポート・エクスポートすることが可能です。
弊社ではAPIのサンプルの共有用リポジトリを用意し、Git上で管理しています。