Postmanとは
Postman は、API を構築して利用するための API プラットフォームです。
Postman は、API ライフサイクルの各ステップを簡素化し、コラボレーションを効率化することで、より優れた API を迅速に作成することができます。
上記が公式の説明ですが、アプリ開発者の目線から書くとAPIのテストや監視が行えるめっちゃ便利なツール群というイメージでしょうか。APIのリクエストを簡単に構築したり、テストしたり、はたまたその作成したリクエストやテストをチームに共有する機能も搭載されていてめちゃくちゃ便利です。
最近API開発を行う仕事をしているため大変ありがたく使わせていただいています。
Postman Collectionsとは
Postman Collectionsは、APIリクエストのグループを管理する機能です。
複数のリクエストをまとめて保存し、一塊にして実行することができます。
また作成したCollectionsは設定したスケジュールに沿って繰り返し実行したり、実行結果にテストを書いたり、実行日時や結果を記録してチームで共有することもできます。
私もPostman Collectionsを利用して、APIテストを作成し、日次で実行、実行結果をチーム内に共有することで快適に開発を行っていました。
ちょっと躓いたこと
ところが開発が進み、APIの実行にアクセストークンを必要にする機能追加を行った際に、
- アクセストークンの取得リクエストの実行
- 取得したアクセストークンを利用してAPIを実行
という実装のやり方がわからずちょっと躓きました。
Postman Flowsを使い、前のリクエストの結果を利用する実装はしたことがあったのですが、Flowsを使った場合は定期実行ができないようでした。
分かってしまえば簡単な話だったのですが、複数のリクエストを繋ぐときはFlowsを使うものという思い込みもあり、ちょっとハマってしまったのでメモを残しておこうと思います。
Postman Collectionsで取得したアクセストークンを利用する方法
環境変数に保存しておくことで次のリクエストでも簡単に利用することができました。
let accessToken = pm.response.json().access_token;
pm.environment.set("accessToken", accessToken);
ちなみにテストもPost-responseの中で書くことができます。
pm.test("Response status code is 200", function () {
pm.response.to.have.status(200);
});
pm.test("Object has properties 'hoge' and 'fuga'", function () {
var jsonData = pm.response.json();
var object = jsonData[0].result.data;
pm.expect(object).to.have.property('hoge');
pm.expect(object.hoge).to.eql('hoge');
pm.expect(object).to.have.property('fuga');
pm.expect(object.fuga).to.eql('fuga');
});
環境変数に値を入れられればリクエストを跨ぐことができるので、色々なことができるなぁと気付いたのでした。
これからもどんどん使っていきたいなと思います。
おわり。

