[レポート] Postman Fukuoka Meetup 2023.8 #PostmanMeetup

2023年8月29日(火) に福岡のエンジニアカフェで開催されたPostman Fukuoka Meetupに参加してきました。本ブログ記事は各セッションについてのレポートです。
2023.08.30

皆さんAPI開発するときにどのように動作確認していますか? 私は開発段階だとPostmanを使うことが多いです。環境ごとの設定を変更したり、APIの変更をチームに共有したりと重宝しています。

2023年8月29日(火) に福岡のエンジニアカフェで開催された Postman Fukuoka Meetup に参加してきたので、本ブログで各セッションについてレポートします。

アナタの知らない Postman エクスペリエンス

スピーカー

セッション概要

イベントページからの引用です。

皆さんお使いのPostman、実はあまり知られていないけれど便利な機能がたくさんあります。本セッションでは、Postmanプラットフォームの全貌を解き明かしつつ、デモを交えてお仕事に役立つPostmanの機能の数々をご紹介します。

スライド

レポート

APIの開発・テストでどんなツール使ってますか?

  • コマンドライン
  • お手製のスクリプト
  • このようなときつらくなりませんか?
    • パラメタが複数あって値を柔軟に変更したい
    • 複数の環境がある
    • 認証が必要、など

Postmanとは?

  • 全世界2500万人以上に使われているAPIを構築して利用するためのAPIプラットフォーム
  • APIライフサイクルの各ステップを簡単に行えるようになる
  • APIの共有と開発コラボレーションを効率化
  • 豊富なオプション (アプリ・Web・CLI・VSCode拡張・API・Collection SDK・インテグレーション機能など)
  • HTTP以外もサポート (GraphQL・gRPC・WebSocket)

PostmanはAPIプラットフォーム

  • チームがAPIを効果的に構築・管理・公開・利用
  • APIライフサイクル全体の管理を支援
  • APIの提供者と利用者両方のライフサイクルをサポート

デモ

アジェンダ

  • コレクション、リクエスト
  • 変数
  • スクリプト
  • コレクションランナー
  • パフォーマンステスト
  • モニター
  • 認証
  • Postbot
  • コマンドライン (CLI)

変数

  • 変数として保存された値はPostman内で {{変数名}} 表記で再利用できる
  • いろんな種類がある (グローバル/コレクション/環境変数)
  • 変数スコープ
    • 変数の種類ごとに異なる
  • 変数タイプ (default/secret)
  • 動的変数

Postmanスクリプト

  • Postmanサンドボックスで実行
  • Built-inのJavaScript APIで、 pm もしくは postman オブジェクトを通じて利用可能
  • 豊富なスニペットとサンプルスクリプトが用意されている
  • 最近ではPostbotもある
  • 2種類のスクリプト実行ステージ
    • Pre-request → リクエスト送信前に実行
    • Test → レスポンス受信後に実行
      • レスポンスの内容を変数に設定
      • レスポンスが正しいか検査
        • ステータスコードが正しいか
        • 想定の時間以内でレスポンスを取得できているか (レイテンシ検査)
        • スキーマが正しいか
  • スクリプトのテスト結果はレイアウト変更で見やすくできる
    • アプリ右下のアイコンで画面レイアウトを変更できる (テスト結果を縦表示に変える、など)

Collection Runner

  • 一連のAPIを実行できる
  • 実行順序は並び替えできる
  • シナリオテストで活用できる
  • 定期実行にも対応してる
    • 失敗したらメールで通知することもできる
  • 変数と値を対にしたデータファイルを用意すると、パラメタを変えながら繰り返し実行できる
  • 他のリージョンから実行することもできる (複数選択可)

パフォーマンステスト

  • 想定ユーザ数
  • テスト間隔
  • リアルタイムに結果を確認できる
    • 該当のリクエスト・レスポンスからトレースできる

認証

  • 色々な認証に対応している (OAuth2・API Key・Bearer Token・Basic Auth)
  • OAuth2の場合
    • シークレットなど必要な情報を変数に保存しておく
    • 認証ボタンを押す → ブラウザで確認 → Postmanに戻る、これだけ
    • Auto-refresh token を有効にすると自動で更新してくれる

Visualizing

  • レスポンスを可視化できる
  • デモではテーブル表示

自動化

  • 2種類のCLI
    • Postman
    • Newman (OSS)
  • Collection Runnerの場合は Automate runs via CLI で起動パラメタを取得できる
  • Circle CIやGitHub Actionsといった各種CI向けのテンプレートも用意されている
  • CLIの実行結果はPostmanサーバーに保存されている

他にも便利な機能が多く用意されている!

ChatGPTの新機能「Function Calling」をPostmanで使ってみる

スピーカー

  • Postman 草薙 昭彦さん (@nagix)

セッション概要

イベントページからの引用です。

6月13日にOpenAIが発表したChatGPT APIの新機能「Function Calling」を、Postmanを使って試してみました。ChatGPTの新機能と、Postmanの基本的な使い方の流れの両方を掴んでいただくことができます。

スライド

レポート

今日のトピック

  • 6/13発表のChatGPTの新機能 Function Calling
    • APIの連携をスムーズにする機能
    • これを活用してPostmanを便利に活用してみる
  • 通常はOpenAIにチャットでメッセージを送信して返答を受け取る
  • Function Callingの場合はメッセージに加えてプログラムが持つ機能のリストを送り、ChatGPTが提案する機能を受け取る
    • 追加情報が必要な場合は会話のコンテキストとメッセージを送りつけると、コンテキストを考慮した上で返答してくれる
  • これまでのChatGPTの外部連携との違い
    • 以前はスクリプトと組み合わせて実現することもできたが応答がブレることがあった
    • Function Callingの場合は応答のブレが少なくなる = 正確性の向上につながる

準備

  • ChatGPTのAPIキーを取得する
  • Postmanをインストールする
  • Postman APIネットワークで OpenAI を検索する
  • コレクションを自分のワークスペースにフォークする
  • Environmentを作ってAPIキーを設定する

OpenAIのサンプルをそのまま試してみる

  • Chat Completions API
  • 状況設定と一連の会話の流れを与えると空気を読んで回答してくれる
    • 例えば Boston という地名を含めると、 MA といった州名を補完してくれる
  • 機能の選択や引数の選定、文章の選択といったことを実現してくれる
  • 説明文やパラメタの値に日本語を指定するとどうなるか?
    • 問題なく認識して回答を生成してくれる
    • 横浜市 を指定すると、 神奈川県 といった県名を補完してくれる

Function Callingの活用によって、レガシーなデータ資産とAIの世界が結びついて活用が進んでいくことを期待できる

APIを活用する福岡の現場から

スピーカー

セッション概要

イベントページからの引用です。

エンジニアカフェで普段個人開発やプロダクト制作に勤しむバックエンドエンジニアから、イマドキの開発についてお伝えします。

レポート

温水さん・田中さんのQA

  • API Workshop Wonderland主催者の方
    • PythonのFWは?
      • FastAPI もしくは Django
    • Node.jsのFWは?
      • NestJS
  • バックエンドの技術を学ぶ上で躓いたことは?
    • 非同期処理が鬼門だった (イメージしづらい)
  • これからバックエンドの学習を始める人向けにおすすめの学習方法は?
    • freeCodeCamp の動画で学習するのがおすすめ
      • 文章よりも動画の方が情報量が多くておすすめ
      • ただし人によって向き不向きがありそう、個々にあった学習方法が良いと思う
    • Backend Developer Roadmap のマインドマップを参考に各項目を学んでいくと良いと思う
      • フロントエンドのロードマップもある

API Workshop Wonderlandとは?

  • 概要
    • Web APIの設計・開発に関する知見を参加者同士で共有・議論するコミュニティ形式のイベント
  • 目的
    • Web APIに対する曖昧さを減らす
    • Web技術の長所や短所など特徴をコードベースで学ぶ
    • 技術選定における選択肢を増やすこと
  • 対象
    • バックエンド開発を始めたばかりの方々

私の技術哲学

  • 枯れた技術の水平思考
  • 完成度が高い安定した技術を他に応用できないか、という考え方
  • 1つの技術をしっかり学んでいくと、その知見を他の技術に活かしやすくなったり新しい発想に活かせることもある

余談: 発信で注意しているポイント

  • 毎日発信し続けること
  • 今回のイベントのきっかけにもなった
    • 福岡で面白そうなことをしているということの認知のきっかけになった

終わりに

普段からお世話になっているPostmanの勉強会に現地参加できてよかったです。普段から使っている機能の詳細な説明もあれば、今まで試したことのない便利そうな機能を知ることもできて勉強になりました。

来週9月6日(水)には東京で Postman Tokyo Meetup 2023.9 が開催されるようです。普段からPostmanを使っている方はぜひ参加してみてください。新しい発見があるかもしれません。