LoginSignup
3
1

3行まとめ

  • この記事は Postman Advent Calendar 2023 のシリーズ2、17日目の記事です。
  • Postmanにアカウント登録して既存のREST API仕様を登録し、Flow、Test、Visualizationを使ってみました。
  • 昔は無料でできることが少なかった気がしましたが、今は無料で色々できます。

背景

業務でWebアプリケーションを作成しているときに、「こんなWeb APIがあったら楽なのに」と思うことがあり、なければ作ってしまえば良いと思い、個人的に無料で簡単に利用できるREST APIによるデータ公開を行っています。

例えば住所の自動補完に使う郵便番号API、インボイス登録番号に関連した法人番号検索APIなどです。

今回は法人番号検索APIを扱います。

image.png

APIはOpenAPIの仕様で公開しています。
https://corporation.teraren.com/openapi/corporation.teraren.com.yml

そのAPI仕様をredocというJavaScriptライブラリを用いて見やすく表示しています。
https://corporation.teraren.com/doc/redoc

問題

これらのサービス自体はなかなか認知されないです。
そして、開発者がテストで軽く使ってみようとしてもCLIからじゃないとテストできなかったり、swagger editorにOpenAPIのファイルを読み込ませてからリクエストを出すと言ったことをしないといけないので利用までの敷居が高いです。

アプローチ

Postmanは世界的に広く使われているAPI仕様を公開するサービスです。Postmanを通じて開発者に広く知ってもらったり、開発者が使いやすいAPIの状態を作っていきたいと思います。

redoc仕様公開はいわばドキュメントの公開です。Postmanは仕様の公開と実行環境の提供です。

Postmanとは

PostmanはAPI開発のための強力なSaaSプラットフォームです。

APIリクエストの作成、テスト、ドキュメント化、共有を容易にするツールを提供します。Postmanは、REST、SOAP、GraphQLなどの様々なAPIタイプに対応し、開発者がAPIのエンドポイントを簡単に検証できるようにします。

また、環境変数の管理、テストスクリプトの作成、APIレスポンスのモニタリングなどの機能も備えており、チームでの協業をサポートするためのチームワークスペースも提供しています。

具体例でいうと、SwitchBotがPostmanでAPIを公開しています

PostmanにAPIを登録して設定

ユーザ登録をした上で、APIを登録する準備を進めていく手順を紹介します。

初期化

APIを登録するためにはワークスペースを作る必要があります。

image.png

API仕様はパブリックなのでpublicを選びます。

image.png

publicにする場合は、自分のプロフィールに公開用の情報を追加する必要があるのでダイアログに出たとおりに設定してOKを押します。

ちなみにこちらが私のプロフィールページになります。
https://www.postman.com/matsubokkuri

OpenAPIのファイルをインポートできる機能があったので早速importしてみます。
image.png

OpenAPIファイルをインポート

どうやってインポートをするか聞かれましたが、デフォルトで進んでみます。

追記: 上の Postman Collection はPostmanでの標準となるAPI仕様のフォーマットです。下の、OpenAPI 3.0 witha Postman Collection はOpenAPI 3.0との互換性を保った上でのAPI表現と、Postman独自のCollectionの両方に追加されます。今回は、Postman専用に不可逆なファイルコンバートとして割り切ります。

image.png

インポートが完了すると左側にメニューに階層化されて表示されました。
image.png

しかしながら、階層が多いように感じたので適切なコレクションを作成して、エンドポイントを適切なコレクションに入れ直しました。ドラッグ・アンド・ドロップで移動できるので楽です。
image.png

エンドポイントの名前が見づらかったので少し修正しました。これでAPIを使う開発者にとってもかなり見やすくなったと思います。
image.png

機能を使ってみる

早速テストで法人番号の一覧を表示するAPIを呼び出してみます。下のペインに結果が整形されて表示されました。

image.png

Visualizationのタブを選ぶと上のJSONの結果がテーブルに勝手に整形されて表示されました。見やすいです。
image.png

グラフ化できるような値の場合はグラフとして表示できるようです。
image.png

仮にline chartで描画してみました。メトリックや集計はできなさそうです。自動で選ばれたメトリックがXとYに設定されました。自動で作成できるのは楽です。
image.png

一覧の取得はパラメータを一切必要としませんでしたが、今度は1つの法人の情報を取得してみます。
変数となる部分は、collectionのスコープで定義されているようです。
image.png

左のメニューの一番上のコレクションを選択したら変数の一覧とデフォルト値が表示されました。
image.png

有効な値に変更していきつつ、サーバのURLといった環境依存の変数はEnvironmentに移します。
完成した設定がこちらです。コレクションスコープ。
image.png

こちらは環境スコープです。
image.png

注意点

  • 右上に「Save」ボタンがあるので毎回押し忘れないように気をつけましょう。
  • Current Valueのカラムにある値が使われるのでこちらも合わせて正しい値を設定しておきましょう。

ということで、法人の情報を1件取得してみます。結果が下のペインに表示されました。
image.png

同様に、他のエンドポイントに対しても適切にパラメータや変数を設定していき、呼び出しができることを確認します。
image.png

APIの自動テスト

APIが正常に動作しているか、適切なスキーマで返却されているかをテストできる機能があります。
テストの内容は、コレクション単位、エンドポイント単位で設定できます。

以下の例は、コレクション単位で設定できるテストの部分に書いてあります。
単純に200番が返ってくるかどうかをテストするような汎用的な内容です。
image.png

上記を実行すると以下のようになります。各エンドポイントの呼び出しに対して評価されます。
image.png

今度は、個別のエンドポイントでテストを書いてみます。
簡易的に、配列で値が返ってくるかを書いてみます。保存して、下のリフレッシュボタンを押すとテストを実行できます。
image.png

テスト内容はGPTに問い合わせることで半自動で作成でるので楽です。
しかしながら、デバッグ方法がちょっとわかりませんでした。consoleに出力してもその内容がどこに出るの発見できませんでした。

今度は、コレクションの方に戻って定期的に自動テストを実行するように設定しておきます。これによって、APIが仕様通りに動いているかをPostmanを見るだけでひと目でわかるようになります。
image.png

このあたりはOpenAPIのスキーマを自動的に読み込んで、自動的にテストを書いてほしいものです。

monitorの設定

外部監視が設定できます。

image.png

定期的にテストを実行して死活監視してくれるようです。
image.png

Flowの作成

Postman上でAPIや計算処理をしてワークフローを構築できるサービスです。

法事番号検索APIでは、各都道府県ごとの法人数を返却するエンドポイントがあるのでシンプルですがグラフ化してみます。

ものの2分でグラフが構築できました。簡易的なダッシュボードとしても使えそうです。

image.png

プロフィールの整備

最後にプロフィールを入力しておきます。
デフォルトのアイコンが何を意味しているのかよくわからないので写真も設定しておきました。

image.png

こんな感じで表示されました。かっこ良いです!
image.png
https://www.postman.com/matsubokkuri

考察

API仕様の提供方法

今まで使っていたOpen APIとPostmanは同じレイヤのプロダクトなのでどちらをメインにして運用するかは考えどころです。→追記:github上のOpenAPIファイルとPostman上の仕様を同期できる機能があります。

Open APIで書いておけばcommitteeといったライブラリで自動的にリクエストとレスポンスのテストを行ってくれるのでこれはかなり重宝します。→追記:Postmanでも型をチェックしてくれます。しかし、エラーメッセージが抽象的でどこが問題かが分かりづらいです。

また、Open APIはその名の通りオープンな仕様なので色々なツールで読み書きやクライアントライブラリの自動生成が可能です。

Open APIと相互運用できたら最高だなと思いました。→追記:できますが、Postman Enterprise Ultimate planが必要です。

みやすさ

ユーザ(開発者)に取ってみればPostmanでAPIが提供されている方が楽にテストできるので便益性が高いです。
Open APIのビューアは貧弱なものが多いのが辛いです。玄人向けという感じです。

日本語対応

ワークスペース名に日本語を使うといくつかの機能が意味不明なエラーが出て使えなくなることがありました。今回のテストはWorkspace名に日本語を使っていますがアルファベットだけにしておきましょう。

まとめ

  • PostmanのUIはかなり優れているしテストもGUI上で書けるので便利です。
  • PostmanとOpenAPIとの棲み分けがまだ整理できていないような感じがしました。(理解が浅いだけかもしれません)。

追記

Postmanの思想がかなり自分が思い描くAPIのプラットフォームの価値観と一致したので、私が提供している郵便番号検索API、銀行コード検索API、駅・路線情報検索APIの仕様をPostmanへ追加しました!

SnowflakeのようなプラットフォームのAPI版という感じがしていてなかなか良さそうです。

image.png

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1