E note
こんにちは!
今回はイークロストークの特別編として9月27日に開催された「Postman Sapporo Meetup」の様子を、内容を抜粋してお届けします。
「Postman」といえば、APIを構築し利用するためのAPIプラットフォーム。世界中のエンジニアが使用しており、世界的な企業でも活用されているツールです。
当日はPostmanの日本支社メンバーが来札!Postmanの使い方や便利な活用法などを直接レクチャーするMeetupを開催しました。またPostmanのみなさんだけではなく、ゲストスピーカーによる特別セッションも行い、豪華な内容で開催されたMeetup。そんな当日の様子を抜粋してレポートします!
講師プロフィール
ゲストスピーカー
オープニング
まずはPostman株式会社代表取締役社長の平林 良昭様より、挨拶とPostmanについての基本情報をご紹介いただきました。
平林氏
私たちPostmanは、2023年4月に日本法人を立ち上げを行い、7月からミートアップを定期的に開催しています。東京では毎月ミートアップを行っていますが、この度札幌では初開催となりました!
さて、まずはPostmanについてご説明していきます。
ところでみなさん「Postman」のことをどのように読んでいますか?私が以前アメリカ人の友人に「ポストマン」と言ってもすぐには通じなかったんです……。Postmanの発音は「ポーオウストマン」です!今日はこれだけでも覚えて帰ってください(笑)。
Postmanの創業は、インドのYahoo!でエンジニアを行っていた3名によるもの。この3名が自分たちの作業効率化のために作ったツールが「Postman」です。Chromeのエクステンションとして開発し公表したところ、世界中のエンジニアたちの間で爆発的な人気になりました!「会社にするならシリコンバレーで」とのことで、サンフランシスコで会社化したという経緯があります。
Postmanは現状で、約2800万人のアクティブユーザー・約50万社の企業が使っています。このことからも「開発の標準ツール」として世界中で利用されていると言ってもいいのではないでしょうか。利用エリアとしてはインドと中国が多いのですが、なかには南極にいる10名も使っているというデータもあるんです!
また、さまざまなメディアでも「デベロッパー向けツールの中で最も成長したツール」として評価されています。
今後はより多くのユーザーに利用してもらい、ユーザー数を1億人を目標に掲げています!
現在Postmanでは、「PostmanパブリックAPIネットワーク」(=APIのカタログ)に力を入れています。世界最大のAPIカタログであり、公開している企業のAPIを検索し使用できるようになっているんです。
この機能は今まで日本語対応されていなかったのですが、9月から日本語検索も可能になりました!
たとえば「PayPal API」などをフォークして、自分の環境で使えるようにできるのです。特に人気がある「Salesforce API」に至っては、2022年の1年間だけで15万回以上もフォークされています。現在は世界的企業のAPIが多いですが、これからは日本企業のAPIの数も増やしていき普及させていきたいと考えています。
Postman Japanのミッション
平林氏
私たちPostman Japanのミッションに「Postmanというツールを使ってAPIをもっと簡単に利用してほしい」というものをを掲げています。APIを中心にしたシステム開発・ビジネス戦略の考え方である「APIファースト」を広めたいと考えているのです。
またユーザーの拡大もミッションの一つです。現状でPostmanの日本登録数は約38万人。そのうち約8万人がアクティブユーザーなのですが、まずはこの人数を2倍にすることを目標としています。そのために製品・Webサイト・ドキュメントなどの日本語化やミートアップやワークショップ、イベントを積極的に開催しています。
アナタの知らないPostmanエクスペリエンス
ここからは川崎氏が登壇し「アナタの知らないPostmanエクスペリエンス」をテーマに、Postmanの使用例を実演を交えてご紹介いただきました。
川崎氏
今回はみなさんに「Postmanでどんなことができるか」を知って欲しいと思い、さまざまな機能をご紹介します、
ところでみなさんはWebのAPI開発ツールとして、どんなものを使っていますか?
コマンドラインを使っている方が多いのではないでしょうか。コマンドラインで色々とコマンドを叩いて随時確認……という作業は、簡易的なものをコピペで作る分にはいいですが、複雑なものを構築する場合は大変ですよね。
特に
- リクエストパラメータが複数あり値を柔軟に変更したい
- 複数のAPI環境があり、それを複数人で動かしたい
- 認証を要する(特に有効期限があるもの)
これらのように複雑な環境を構築する場合は、かなり大変だと思います……。
そこで活用して欲しいのがPostmanです!
Postmanとは「APIライフサイクルをサポート」するツール。設計・モック→デバッグ→自動化テスト→ドキュメント→監視→公開の各ステップを簡単に行えるようになり、APIの共有と開発コラボレーションを効率化できるんです。複雑な環境や複数人で動かす場合でも、Postmanを使えば簡単に対応や変更が可能となります!
Postmanアプリを使うと、たとえば開発時のこんなことが簡単にできます。
- APIのセットを整理しておける
- エンドポイントを打ち込む必要がない
- パラメータを変えてすぐに試せる など
またPostmanは、デスクトップアプリ以外にも
- Postman ウェブ
- Postman CLI
- Postman VS Code拡張機能
- Postman API
- Postman Collection SDK
- インテグレーション機能
これらのような機能も充実しています!
さらにHTTP以外のリクエストの作成や整理も可能です。対応しているものも幅広く、このようなものがあります。
- GraphQL
- gRPC
- WebSocket
- Socket.IO
- Collection
- Environment
- API
- Flows
- Workspace
- MQTT
APIは一人で開発することもあれば、チームや複数の会社で開発することもありますよね。PostmanはAPIプラットフォームとして「開発支援」に力を入れ、効果的に構築・管理・公開・利用などの一連のAPIライフサイクルを支援するAPIプラットフォームなんです。
そのため公開して終わりではなく、他の人とコラボレーションができたり、ガバナンスとセキュリティ戦略までカバーしています!
開発を早く回すためのすべてがPostmanで叶う!
ここからは引き続き川崎氏にご登壇いただき、デモを交えながら実際にPostmanの便利な使い方をレクチャーしてもらいました!
川崎氏
PostmanはいろいろなAPIをテストする際に、繰り返し使うもの・再利用するものについては変数{{}}}を使うとよりスムーズです。
またテストスクリプトを使えるようになると、よりスムーズになります。スクリプトと聞くと「プログラムを組まなきゃいけないの?」と思うかもしれませんが、よく使うスクリプトに関しては、あらかじめ「スニペット」として用意しているのでご安心ください。
さらにPostmanの機能の一つである「Postbot」を使うと、自然言語での質問からテストコードを提案してくれますよ。さらにPre-requestとTestの2種のステージでも、スクリプトの実行が可能です。
実際に開発環境と近い画面で、説明をしていただきながらデモを行っていただきました。
このほかにも外部の監視環境からのテストや仮想ユーザー数、実行時間や負荷プロファイルなどを設定してのパフォーマンステストなども実施できます。一般的には大規模な環境を作ってテストすることが多いと思いますが、Postmanの場合は早い段階でパフォーマンステストを行い、開発のボトルネックをなくすことを目的にしているため、かなり簡単に行えるようにしています。
テストでは仮想ユーザーの数やテスト時間の長さ、負荷のかけ方などを細かく設定し、よりリアルな環境で実行可能。データはリアルタイムでログが残るので、エラーが起きた際のリクエストも追うことができるようになっています。
認証やリフレッシュなど開発で面倒な部分も、Postmanの機能を使って簡単に対応・反映できることがお分かりいただけたと思います。
ご覧いただいたように開発を早く回すために必要なものや手間がかかるものの多くが、Postmanで対応できます!ぜひみなさんの開発でも役立ててもらえれば幸いです!
ChatGPTの新機能「Function Calling」をPostmanで使ってみる
ここからは草薙氏が登壇し「ChatGPTの新機能「Function Calling」をPostmanで使ってみる」をテーマに、ご紹介いただきました。
草薙氏
今回は「ChatGPTの新機能「Function Calling」をPostmanで使ってみる」をテーマにお話ししていこうと思います。
「Function Calling」は、簡単に言えばChatGPTと他のシステムを連携できるというものです。
そもそもChat-GPTは、Webでアクセスして会話のプロンプトで問いかけると答えが返ってくる単純なシステムです。これまでのChat-GPTでは、他のシステムと連携させるために、開発者が自分たちでトライ&エラーでプロンプトを組んで行っていました。
それに対し、ユーザーからの問いかけとOpen AIの間にプログラムを置き、さまざまなFunction(なんらかのサービスの一覧)から的確な機能を呼び出せるように繋いだのが「Function Calling」です。
試したことがある方はわかるかもしれませんが、今まではChatGPTからの返答ってブレがありましたよね。これは質問者からの聞き方や聞くタイミングなどによって、導き出される答えが異なっていたことが原因として挙げられます。
しかしFunction Callingという仕組みを作り、さらに公式でもサポートが始まったことで、今後は正確性が向上していくことが予想できます。
データ資産の活用にもつながるかも!?
草薙氏
ではここからは、簡単に「Function Calling」の流れを紹介します。
まずはChatGPTのAPIを、PostmanのAPIカタログから探してフォーク(取得)しておきます。ChatGPTのAPIである「Chat Completion API」は、状況と一連の会話の流れを与えると流れを汲んで答えてくれるAPIです。
フォークを行ったら、まずはfunctions(プログラムから呼び出せるFunctionの定義)を設定します。ここでは天気予報を例に行いましょう。設定する項目は、都市・州・天気・摂氏or華氏・呼び出しに必要な情報の説明などを設定します。
ちなみに質問や説明は自然言語でなげてOK!質問の内容から自動で推測して、適切なFunctionの選択と呼び出しに必要な情報を用意してくれます。
たとえば「ボストンの天気を教えて」という質問であっても「マサチューセッツ州ボストンの天気」と推測して認識してくれます。
ここまで設定しておけば、プログラムからFunctionを呼び出してデータを取得できるように。「ボストンの天気は何?」という問いに対し「マサチューセッツ州ボストン・天気・晴れ・摂氏22度」というデータを出してくれます。得られたデータをOpenAIに返すと、自然言語に直した状態でレスポンスを返してくれるようになりました!
デモは英語で行いましたが、これらはFunctionのサンプルを日本語にしても、ほぼ問題なく返してくれるようになります。たとえば「横浜の天気は?」とだけ聞いても、自動で「神奈川県横浜市」と認識してくれ、Chat-GPTが「横浜の天気は晴れで、気温は22度です。」と返してくれるということですね。
Function Callingが実装されると言語とAIの世界が繋がり、今までのシステムとの連携や情報の掘り起こしができるのでは?と考えています。この連携が行われることで、今までは使われていなかったレガシーのデータ資産の活用が進むかもしれません!
今後はますます、繋いでいる「API」の重要性が高まると期待しています。
特別セッション
ここからは特別セッションとしてゲストスピーカーが2名登場!それぞれPostmanを使った便利な使い方を紹介してくれました。
ゲストトーク1:PostmanとOpenAPIを使ったAPIテスト
まず登壇したのが、以前もE CROSS TALKにご登壇いただいた中村 太一氏(あさいち合同会社)。実際にPostmanを使っている人を対象に「PostmanとOpenAPIを使ったAPIテスト」をテーマにお話しいただきました。
中村氏
Postmanを使っていると、リクエストをいちいち作らなくてはいけないのがツライんですよね……。なにか一つプロダクトを作る時にリクエストを作り、変更のたびにリクエストも変更しなければいけません。
どうしようか考えた時に、仕様を書くフォーマットである「OpenAPI」を活用します。
APIを作る時に仕様を書くフォーマットがあり、そのひとつが「OpenAPI」。OpenAPIは、決まった仕様からしっかりとしたコードを出すのは得意。モックサーバーを作ることも可能です。
ではこのOpenAPIとPostmanをどのようにつなげればいいのかというと、とても簡単。インポートするだけなんです!インポートしておけばひとつAPIを叩くだけで、PostmanからAPIを調整できるようになるんです。
ただこれで完璧なわけではなく、インポートをした際にCSRF、XSRF対策の影響で必要な情報の取得や認証が行えない可能性があります。認証を行うためには、リクエストをする前にトークンの取得が必要です。
これを行うために使うのが「Pre-request Script」です。トークンを取得し、取得したトークンを次のリクエストのヘッダーに入れてくれるスクリプトを書いています。変数を使えば、環境やユーザーごとに置き換えるスクリプトにすることもでき便利です!
Postmanのツールを使って制作環境を快適に!
実は大問題があって、OpenAPIが更新された際にPostmanに読み込ませると、今まで書いていたものが消えてしまうんです……。
ところがPostmanはツールが充実していて、ツールとコレクションを活用することで、自動で今まで使っていたスクリプトをそのまま使えるようになります!
このようにPostmanとさまざまなAPI、そしてPostmanに搭載されているツールを活用すれば、面倒な部分をショートカットしつつより制作しやすい環境を構築できるんです。
まとめると
- 面倒なリクエストの作成はOpenAPIを使って行う
- リクエストの前と後にJSを実行できる
- インポートすると消えてしまう問題は、ツールを使いスクリプトを差し込むなどしてコレクションを作れば解決できる
以上です!
ゲストトーク2:API開発のベストプラクティスについて考えてみよう
ここからは不破 崇行氏(エコモット株式会社/合同会社東雲研究所)が登壇。Postman初心者向けに「API開発のベストプラクティスについて考えてみよう」をテーマにお話しいただきました。
不破氏
事前アンケートで、半分ほどはPostman初心者とお聞きしていたので、初心者向けに「Postmanを使ったAPIの設計からモック実装までをサクッと行うための講義」を行いたいと思います。
そもそもAPIとは、簡単にいえばサービスの「窓口」。それっぽくいえば「インターフェース」のことです。たとえば「Xから特定ユーザーのツイート一覧を取得する」ために、APIという窓口を経由して情報の取得・ポストを行う……といったもの。
API設計で重要なのは相手のことを思いやった設計!
APIを設計しているとどんどん複雑なものを作ってしまったり、欲しいものと違うものを作ってしまったりしてしまいがちです。誰が使うのか?どんな人がどのように使うのか?を考えて、それに適したAPI設計が重要だと思っています。
たとえば最小限の通信回数で達成できるように設計すれば、バッテリー負荷を減らすことにつながります。結構外出先や限られた機材・環境でチェックをする人は多いもの。なるべく相手の環境や負荷、なぜ仕事を依頼されたのかの背景まで考えてあげると、それに合わせたAPI設計もできるはずです。
サクッとモックサーバーを作ってみよう
モックサーバーを作るのにも、サクッと使えるのがPostmanです!
ここでいう「サクッと」の条件は「迷わず動かせる」ことと「目的を見失わずに進められる」ということです。「迷わず動かせる」というのは、複雑な操作をしなくてもいいということ。「目的を見失わずに進められる」というのは、本来作りたいものをツールを使って作れるということだと思っています。
Postmanのインターフェースは難しくないので、直感的にAPIの設計が可能です。あるていど設計を考えながらAPIを作ることもでき、トライ&エラーを繰り返しながら作業が進められます。モックを作ればチーム内でワークスペースを共有し、複数人で設計したり試したりもできますよ。
モックサーバーづくりも実演いただきました!
不破氏
今日のまとめは非常にシンプル。システム開発において「思いやり」は非常に重要です!
使う相手に合わせた設計や開発を行い、サクッとモックを作って渡してあげることで、相手の待ち時間を減らしてあげることも「思いやり」ではないでしょうか。このことを実践してもらえればと思います!
◻︎まとめ
札幌初開催となった「Postman Sapporo Meetup」。多くの方が現地に集まり、懇親会まで大賑わいとなりました。
Postmanの利用方法から便利な使い方、また今後の展開の広がりなどを期待させる内容は、現在利用しているエンジニアにとっても、これからエンジニアを目指す初心者にとっても有意義なものになったのではないでしょうか。
人によって、そして使うツールによっても無限の可能性を秘めている「Postman」について知れる大変貴重な機会でした!
E CROSS PARKでは、今後もさまざまなテーマのワークショップを開催予定です。
ぜひみなさまのご参加をお待ちしております!
次回のレポートもお楽しみに!