Upgrade to Pro — share decks privately, control downloads, hide ads and more …

アナタの知らない Postmanエクスペリエンス / An unknown Postman e...

アナタの知らない Postmanエクスペリエンス / An unknown Postman experience for you

Presentation Slides for Postman Tokyo Meetup 2023.7
Session title: アナタの知らない Postmanエクスペリエンス / An unknown Postman experience for you

Yoichi Kawasaki

July 05, 2023
Tweet

More Decks by Yoichi Kawasaki

Other Decks in Technology

Transcript

  1. コマンドライン? @postman_japan $ curl --header "Content-Type: application/json" \ --request POST

    \ --data '{ \ "Item": "チョコレート", \ "Count": 3, \ "API-Key": "880457872340965884" \ }' \ https://api.example.com/api/order cURL Sample
  2. お手製のスクリプト? @postman_japan import requests import json url = 'https://api.example.com/api/order' payload

    = json.dumps({ 'Item': 'チョコレート', 'Count': 3, 'API-Key': '880457872340965884' }) headers = {'Content-Type': 'application/json'} response = requests.request('POST', url, headers=headers, data=payload) print(response.text) Python Sample
  3. 私の周りでは Elastic Cloud on Kubernetes (ECK)の仕組みと各構成変更における挙動について  https://qiita.com/yokawasa/items/31742bb9b6a1898fb450 curl -u "elastic:$PASSWORD"

    \ -k -XPUT \ "https://localhost:9200/${INDEX_NAME}/_settings" \ -H 'Content-Type: application/json' \ -d' { "index" : { "auto_expand_replicas": "0-all" } }' Curl は、プリミティブな手段として、コピペ実行用に便利で あり、記事などでのリクエスト内容の説明用としてもわかり 易さはある
  4. でも、このようなとき ツラくなりませんか? @postman_japan • リクエストパラメータが複数あって値を柔軟に 変更したい • 複数のAPI環境がある • 認証を要する(特に有効期限があるもの)

    • リクエストにシークレット情報を含めたい • 複数APIを連携させたテストをしたい • リクエスト毎にレスポンス内容をチェックしたい
  5. All rights reserved by Postman Inc Postman とは? 全世界2,500 万人以上のユーザーに使われている

    APIを構 築して利用するための API プラットフォームです。 API ライフサイクルの各ステップを簡単に行えるようになり、 API の共有と開発コラボレーションを効率化できます。
  6. アプリだけじゃない 豊富な Postman 利用オプション • Postman アプリ ◦ Windows、macOS、Linux 上のデスクトップアプリ

    • Postman ウェブ ◦ ウェブブラウザから利用できる • Postman CLI ◦ コマンドライン。自動化、CI/CD などで利用可能 • Postman VS Code拡張機能 ◦ VS Code 拡張として Postman の機能が利用可能 • Postman API ◦ Postman 自身の API を活用して他システムとの連携可能 • Postman Collection SDK ◦ Node.js モジュール。コレクション管理が可能 • インテーグレーション機能 ◦ さまざまなプラットフォームとの統合サポート Postman CLI 例 Postman VS Code 拡張機能例 @postman_japan
  7. Postman は APIプラットフォーム API プラットフォームとは、チームが API を効果的に構築、 管理、公開、利用できるようにする統合ツールとプロセスを 備えたソフトウェアシステムです。 Postman

    は、API 提供者が、API 利用者と直接関わりなが ら、設計〜製造までのAPI ライフサイクル全体の管理を支援 します。コード管理ツール、CI/CD、クラウドインフラ、APM・ 監視ソリューションとの統合を通じて既存のワークフローを補 完・強化します。 また、コラボレーションを促進し、一貫性を促進し、リスク軽 減のためのAPI ガバナンスとセキュリティ戦略を策定し、実 施できるようになります。 What is an API platform? https://www.postman.com/api-platform/ @postman_japan
  8. API 提供側 ライフサイクル API 利用側 ライフサイクル 単一プラットフォームで 提供者と利用者両方の API ライフサイクルをサポート

    テスト 開発 設計 定義 デプロイ デプロイ 配布 監視 監視 テスト 評価 統合 発見 セキュリ ティ @postman_japan
  9. 変数 変数として保存された値はPostman内で {{変数名}}表記で再利用できます • 変数の種類 ◦ グローバル変数 ◦ コレクション変数 ◦

    環境変数(Environment) • 変数スコープ ◦ 変数の種類ごとに異なる • 変数タイプ ◦ default ◦ secret (グローバルと環境変数のみ) • 動的変数 ◦ {{$guid}}, {{$timestamp}}, {{$randomInt}}, etc. 変数スコープ https://learning.postman.com/docs/sending-requests/variables/ 同じ名前の変数が2つの異なるスコープで宣言されている場合、狭 い方のスコープの変数に格納されている値が使用される 補足
  10. Postmanスクリプトとは? • Postman サンドボックスで実行 • Built-inのJavaScript APIをpm、postmanオブジェクトを通じて利用可能 • Mochaベースのテストフレームワークを利用、AssertionライブラリとしてChaiが利用可能 •

    豊富なスニペットとサンプルスクリプト集が用意されている • 新機能: Postbot(AIを活用したスクリプト生成アシスタント) スクリプト Postbot スニペット ローコード 支援機能 補足
  11. モニターで複数エリアから定期的にAPIテスト実行 • コレクションごとにモニターを設定 • テスト実行頻度 ◦ 5分毎〜設定可能。ただし無料プランは一時間毎〜 • テスト実行リージョン選択 ◦

    複数リージョンからのAPIテスト実行が可能 • スタティックIP設定 ◦ 要Professional / Enterpriseプラン • アラート通知設定 ◦ メール通知、or インテグレーション設定でslack、PagerDuty など他チャンネルへの通知も可能 • リトライ、タイムアウトなど設定可能 テスト実行リージョンの選択 補足
  12. デモの認証プロセス デモでは Spotify API 利用のために OAuth2.0 Authorization Code (with PKCE)

    フローでアクセストー クンを発行・再発行する PostmanのoAuth2.0認証設定ページ https://blog.postman.com/pkce-oauth-how-to/ @postman_japan 補足
  13. 2つのCLI - Postman CLIとNewman Postmanで利用可能な2種類のコマンドラインインターフェースとその違いについて。スタンドアローン実 行要件など特別な理由がない限りPostman CLIの利用を推奨 Postman CLI (Postmanサポート)

    Newman (OSS/コミュニティサポート) - Postmanによりサポート - ダウンロード可能パッケージとして配布 - コレクション実行結果をデフォルトでPostman に送信 - ライブラリとしては利用できない - Postmanにサインイン可能で、アカウントに紐 づいたPostman管理アセット情報を事前エク スポートすることなく利用可能(ただし、 Postmanサーバにアクセスが必要) - API Linting(optional)が実行できる - OSSとしてコミュニティサポート - npmパッケージとして配布 - ライブラリとして利用可能 - Postmanにサインインできない。よって、CLI から利用するコレクション情報は事前にエクス ポートしておく必要がある - スタンドアローン実行が可能(Postmanサーバ へのアクセスが不要なので) https://learning.postman.com/docs/postman-cli/postman-cli-overview/#comparing-the-postman-cli-and-newman 補足
  14. Postman CLIからのコレクションテスト実行 CI/CD - GitHub Actionsサンプル設定例 Postman CLIからの コレクションテスト実行 例が表示

    CI/CDパイプラインか らの実行例 コレクションランナー実行方法設定 CLIから実行を選択 補足
  15. Postman CLIからのコレクションテスト実行例 # Postmanにログイン postman login --with-api-key {{postman-api-key}} # コレクションテスト実行

    # -e で環境 (Environment) の指定が可能 postman collection run {{collection-ID}} \ -e {{environment-ID}} コレクションテスト実行コマンド例 Postman CLIでのcollection run実行イメージ 実行結果の詳細はPostmanサーバに自動的に保存され後で閲覧が可能 補足
  16. まだまだあります • モックサーバー • Postman Flows • API ネットワーク •

    API ビルダー • API セキュリティ • API ガバナンス • ・・・ また別の機会にご紹介いたします @postman_japan