CData Software Blog

クラウド連携のCData Software の技術ブログです。

Postman for the WEB(Open Beta)を触ってみる

f:id:sugimomoto:20200723232707p:plain

こんにちは! CData Software Japan の Postman Love担当、杉本です!

7月16日にWeb APIのテスト・開発におけるコラボレーションツールである Postman のWeb版(Open Beta)が公開されました!

blog.postman.com

Postman は最初 Google Chrome のアドオンとしてリリースされ、その後デスクトップアプリ(Electronベース)にスイッチし提供されてきました。

それはそれで素晴らしいUI・UXを提供していましたが、個人的不満点として「iPadiPhoneからAPIの検証ができない!」という問題がありました。(寝っ転がりながら、API検証ができない)

それが今回のリリースでは、ブラウザ上でPostmanを動かせるようになり、これでiPadでも快適にAPI検証ができる予感! ということで早速使ってみたレポートをお届けしたいと思います。

使い方

使い方は簡単です。以下のURLにアクセスし、Postmanアカウントでログインするだけ。

https://go.postman.co/build

Postman Desktop アプリとほぼ同じUIがブラウザで立ち上がります。

f:id:sugimomoto:20200723232808p:plain

もちろんiPadのブラウザからも同様にアクセスが可能!

f:id:sugimomoto:20200723232815p:plain

立ち上げてすぐわかりますが、「Collections・History・APis」や「Environment」などの設定がブラウザ版でも同様に共有されます!

以下のように私の100近くある Postman Collection もすべて共有されていますし、

f:id:sugimomoto:20200723232821p:plain

Desktop APP版でリクエストした実行履歴・Historyも出てきます。

f:id:sugimomoto:20200723232826p:plain

また、Postmanで作成した API 定義も共有されているので、ここから再度開発やテストを構成していくことが可能です。

f:id:sugimomoto:20200723232842p:plain

API リクエストを実行してみる

それではAPIをリクエストしてみましょう! ということでBacklogのAPIを実行してみると

実はエラーになります!

f:id:sugimomoto:20200723232851p:plain

メッセージそのまま出ているとおりですが、そう「CORS(Cross-Origin Resource Sharing)」の制約です。

ブラウザのF12開発者ツールを立ち上げると、はっきり出ていますね。

f:id:sugimomoto:20200723232858p:plain

まあ、ブラウザ版ということではじめから「CORSどうするん?」という予感はありました。一回サーバー側にプロキシすんのかな? とも思っていましたが、違ったようです。

Postman for the WEB で CORSの問題はどう回避すればいいのか?

メッセージにも出ているとおりですが、この問題ちゃんと回避策があります。

Postman for the WEB のリリースと同時に、Postman Agentというアプリケーションも公開され、提供が開始されました。

詳しくは Postman エバンジェリストの Kin Leanがブログにまとめています。

blog.postman.com

ざっくり言ってしまえば、Postman for the WEBでのAPIリクエストを一度LocalhostにあるAgentに渡して、そこからAPIリクエストを実行し、レスポンスを再度 Postman for the WEBに返すという仕組みを提供します。

f:id:sugimomoto:20200723232907p:plain

これにより、ブラウザから実行する際に発生してしまうCORS制約を回避し、Postman for the WEBでAPI検証をデスクトップアプリと同様に行えるようにしています。

Postman Agentの使い方

Postman Agentの使い方は特に難しくありません。以下のように「Use Postman Desktop Agent」から「Installed」のリンクをクリックします。

f:id:sugimomoto:20200723232926p:plain

次に「Download desktop agent」をクリックすると、インストーラーが落ちてくるので、それを実行します。

f:id:sugimomoto:20200723232933p:plain

以下のような感じでインストールが実行されるので、それが完了すると

f:id:sugimomoto:20200723232937p:plain

タスクバーに Postman Agentが常駐するようになります。デフォルトで「10533」ポートを使って、リクエストするようです。

f:id:sugimomoto:20200723232942p:plain

あとは、再度 Postman for the WEB に戻り、「Use Postman Desktop Agent」をクリックすれば、以下のように Postman Agentとの疎通が確率されます。

f:id:sugimomoto:20200723232947p:plain

改めてAPIリクエストを実行してみると、うまくリクエストが通りました!

f:id:sugimomoto:20200723232955p:plain

気になる点

Agentは他のマシン(iPadや別なWindowsマシン)のものでも使える?

これが個人的に結構重要だったんですが・・・駄目っぽいです・・・orz

どうやらPostmanアカウントに紐付いているわけではなく、localhost側にルーティングされているような雰囲気です。

今回、私のWindowsマシンにPostman Agentをインストールしていたのですが、iPadでは以下のようにPostman Agentが検出されません。

f:id:sugimomoto:20200723233005p:plain

iPadだけかなと思い、試しにWindowsVMを立ち上げて、そこから試してみましたが結果は同様でした。。。残念。

f:id:sugimomoto:20200723233011p:plain

この辺は今後のアップデートに期待です。

リフレッシュは要注意

開いていたタブの情報などは保存されないようですね。ブラウザをリフレッシュしたり、新しくURL「https://go.postman.co/build」にアクセスし直した場合、以下のように初期状態になるので要注意です。

一応Historyには残りますが、大事なものはCollectionに保存しておきましょう。

f:id:sugimomoto:20200723233020p:plain

Find and Replaceは使えないっぽい

Postman デスクトップで地味に便利な機能「Find and Replace」が使えないっぽいです。

これでCollectionの要素を一括置換とかできるんですが。まあ、Collectionを全部なめなければいけないので、なんかわからんでもないです。

f:id:sugimomoto:20200723233028p:plain

おわりに

iPadから使えなかったのは、個人的にものすごく残念でしたが、とても今後に期待が持てるリリースなのは間違いない感じです!

以下のフォーラムでフィードバックも募集しているようなので、盛り上げていきたいところです。

community.postman.com