Apidog Docs
🇯🇵 日本語
  • 🇺🇸 English
  • 🇯🇵 日本語
HomeLearning CenterSupport CenterAPI References
HomeLearning CenterSupport CenterAPI References
Discord Community
Slack Community
X / Twitter
🇯🇵 日本語
  • 🇺🇸 English
  • 🇯🇵 日本語
  1. スクリプト利用
  • Apidog学習センター
  • はじめに
    • Apidog紹介
    • Apidog基本操作
      • 概要
      • 新しい APIを作成
      • APIにリクエストを送信
      • アサーションを追加
      • テストシナリオを作成
      • APIドキュメントを共有
      • さらなる探究
      • リクエストを送信してAPIとして保存
    • Apidog基本知識
      • Apidog操作方法
      • Apidogの基本概念
    • 移行
      • 概要
      • 手動インポート
      • 定期インポート
      • インポートオプション
      • データのエクスポート
      • Import from...
        • Postman からインポート
        • OpenAPI(Swagger)仕様のインポート
        • cURLのインポート
        • Markdownのインポート
        • Insomniaからのインポート
        • apiDocからのインポート
        • .harファイルのインポート
        • WSDLのインポート
  • API設計
    • 概要
    • コンポーネント
    • 常用フィールド
    • グローバルパラメータ
    • API変更履歴
    • プロジェクトの作成
    • 一括API管理
    • APIの基本
    • 複数のリクエストボディ例の設定
    • Schemas
      • 概要
      • 新規Schemaの作成
      • スキーマを構築する
      • JSONなどからのSchema生成
    • Security schemes
      • 概要
      • Security Schemeの作成
      • Security Schemeの使用
      • オンラインドキュメントにおけるSecurity Scheme
    • 高度な機能
      • APIをテストステップとしてインポート
      • パラメータリストの表示形式
      • APIのカスタムフィールド
      • APIのステータス
      • API固有識別子
  • API開発 & デバッグ
    • 概要
    • リクエストの生成
    • リクエストの送信
    • コード生成機能
    • APIケース
    • 動的な値
    • レスポンス検証
    • 設計優先 & リクエスト優先
    • 環境 & 変数
      • 概要
      • 環境とサービス
      • 変数の使い方
    • Vault secrets
      • 概要
      • AWS Secrets Manager
      • Azure Key Vault
      • HashiCorp Vault
    • 前/後処理
      • 概要
      • Wait
      • 変数の抽出
      • アサーション
      • データベース操作
        • 概要
        • MongoDB
        • Redis
        • Oracle クライアント
      • スクリプト利用
        • 概要
        • 前処理スクリプト
        • 後処理スクリプト
        • Postmanスクリプトリファレンス
        • 共通スクリプト
        • 他のプログラミング言語の呼び出し
        • JSライブラリの使用
        • レスポンスの可視化
        • スクリプトの例
          • その他の例
          • スクリプトを使用したリクエストメッセージの変更
          • スクリプトでの変数の使用
          • アサーションスクリプト
    • 動的値モジュール
  • APIモック
    • 概要
    • スマートMock
    • カスタムMock
    • Mockの優先順位
    • Mockスクリプト
    • クラウドMock
    • セルフホストランナーMock
    • Mock言語 (ロケール)
  • 自動テスト
    • 概要
    • テストレポート
    • テストシナリオ
      • テストシナリオの作成
      • 他のプロジェクトからAPI/APIケースをインポートする
      • リクエスト間でデータを渡す
      • API/APIケースからのデータ同期
      • フロー制御条件
      • テストシナリオのエクスポート
    • テストシナリオ実行
      • データ駆動型テスト
      • スケジュールタスク
      • テストシナリオを一括実行する
      • 他のプロジェクトのAPIの実行環境を管理する
      • テストシナリオを実行する
    • APIテスト
      • 統合テスト
      • 回帰テスト
      • エンドツーエンド(E2E)テスト
      • パフォーマンステスト
    • Apidog CLI
      • 概要
      • Apidog CLIのインストールと実行
      • Apidog CLI オプション
    • CI/CD
      • 概要
      • Jenkinsとの連携
      • Gitlabとの統合
  • APIドキュメント公開
    • 概要
    • Google AnalyticsとDoc Sitesの連携
    • CORS プロキシ
    • クイック共有
    • 可視性設定
    • ドキュメントURLに値を埋め込む
    • APIドキュメントを表示する
    • フォルダツリー設定
    • API SEO設定
    • カスタムレイアウト
    • ドキュメント検索
    • カスタムドメイン
    • ドキュメントサイトの公開
    • APIバージョン
      • 概要
      • APIバージョンの作成
      • APIバージョンの公開
      • APIバージョンごとにAPIの共有
  • リクエスト送信
    • 概要
    • GraphQL
    • gRPC
    • WebSocket
    • SSEデバッグ
    • SOAP/Webサービス
    • デバッグ用のリクエストプロキシエージェントを使用する
    • Socket.IO
    • リクエスト作成
      • リクエストの基本
      • パラメータとボディ
      • リクエストヘッダー
      • リクエスト設定
      • HTTP/2
      • リクエスト履歴
    • 認証と認可
      • 概要
      • CAとクライアント証明書
      • Apidogがサポートする認可タイプ
      • Digest Auth
      • OAuth 1.0
      • OAuth 2.0
      • Hawk Authentication
      • Kerberos
      • NTLM
      • Akamai EdgeGrid
    • レスポンスとクッキー
      • 概要
      • ApidogのAPIレスポンス
      • Cookieの作成と送信
      • リクエストのデバッグ
      • リクエストをAPIとして保存
  • ブランチ管理
    • 概要
    • 新しいスプリントブランチの作成
    • スプリントブランチの管理
    • ブランチ内でのAPIテスト
    • ブランチでAPIの設計
    • スプリントブランチのマージ
  • Apidog MCP Server
    • 概要
    • Apidogプロジェクト内のAPI仕様をApidog MCPサーバー経由でAIに接続する
    • Apidogが公開したオンラインAPIドキュメントをApidog MCPサーバー経由でAIに接続する
    • Apidog MCPサーバーを介してOpenAPIファイルをAIに接続する
  • ベストプラクティス
    • ガイド:ChatGPT APIのトークンとコスト計算
    • Apidog コラボレーションワークフロー
    • API署名の取り扱い方法
    • Apidogでの認証状態の管理
    • OAuth 2.0で保護されたAPIにアクセスする方法
  • 管理
    • オンボーディングチェックリスト
      • 基本概念
      • Apidogスタートアップガイド
    • チーム管理
      • チーム管理
      • チームメンバーの管理
      • メンバーの役割と権限設定
      • チーム活動
      • チームリソース
        • 一般ランナー
        • チーム変数
        • リクエストプロキシエージェント
        • データベース接続
      • リアルタイムコラボレーション
        • チームコラボレーション
    • プロジェクト管理
      • プロジェクト管理
      • プロジェクトメンバーの管理
      • 通知設定
    • 組織管理
      • シングルサインオン(SSO)
        • 概要
        • Microsoft Entra IDの設定
        • Okta設定
        • 組織のSSOを設定する
        • チームへのグループのマッピング
        • ユーザーアカウントの管理
      • SCIMプロビジョニング
        • SCIMプロビジョニング入門
        • Microsoft Entra ID
        • Okta
      • 組織リソース
        • セルフホストランナー
  • 請求情報
    • 概要
    • プランのアップグレード
    • クレジット
    • クレジットカードが使えない?
    • サブスクリプションの管理
  • データ & セキュリティ
    • Apidogのデータはどこに保存され、データセキュリティはどのように確保されていますか?
    • ユーザーデータはどのように保存されますか?このデータは公開されますか?それともプライベートですか?すべてのデータはクラウドに保存されますか?
    • リクエストを送信する際、Apidogサーバーを経由しますか?データセキュリティは確保されていますか?
  • アドオン
    • API Hub
    • Apidog IntelliJ IDEA プラグイン
    • リクエストプロキシ
      • Apidogウェブでのリクエストプロキシ
      • 共有ドキュメントでのリクエストプロキシ
      • Apidogクライアントでのリクエストプロキシ
    • ブラウザ拡張機能
      • Microsoft Edge
      • Chrome
  • アカウント & 設定
    • アカウント設定
    • 言語設定
    • データバックアップ
    • ネットワークプロキシ設定
    • ホットキー
    • Apidogの更新
    • OpenAPIアクセストークンの生成
    • アカウント削除
  • 参考資料
    • Swagger拡張機能
    • Socket通信:パケットの分断と結合
    • 用語の説明
    • よくある質問
    • API-デザインファーストアプローチ
    • Apidog OpenAPI/Swagger仕様拡張
    • JSONPath
    • XPath
    • 正規表現
    • JSONスキーマ
    • CSVファイルフォーマット
    • Java環境のインストール
    • ランナーのデプロイ環境
    • ApidogフレーバーMarkdown
  1. スクリプト利用

他のプログラミング言語の呼び出し

外部プログラムは「外部プログラムディレクトリ」に保存されたコードファイルで、javaプログラムアーカイブファイル(.jarパッケージ)や、他のプログラムのソースコードファイルが該当する。以下の拡張子のファイルをサポートしている:
java (.jar)
python (.py)
php (.php)
js (.js)
BeanShell (.bsh)
go (.go)
shell (.sh)
ruby (.rb)
lua (.lua)
TIP
外部プログラムは「サンドボックス環境」の外で実行され、コンピュータ上の他のプログラム、ファイル、データを操作できるアクセス権限があるため、セキュリティリスクが伴う。ユーザーは呼び出すプログラムのセキュリティを確認する必要がある。

外部プログラムの呼び出し#

「外部プログラムディレクトリ」は以下の方法で素早く開くことができる:
外部プログラムを呼び出す際、Apidogはサブプロセスを起動し、その中でコマンドライン実行により指定された外部プログラムを実行する。最終的にサブプロセスの標準出力(stdout)が呼び出しの結果として返される。呼び出し全体のプロセスにおいて、コアロジックはユーザーが外部プログラムで実装し、Apidogは主に以下の3つのステップを実行する:
1.
提供されたパラメータに基づいてコマンド文字列を組み立てる
2.
コマンドを実行する
3.
結果を返す
その中で、最初のステップが呼び出しの原理を理解する上で重要だ。Apidogは「コマンドプレフィックス + プログラムパス + パラメータリスト」という式でコマンドを連結する。
「コマンドプレフィックス」はプログラムファイルの拡張子から推測される。「プログラムパス」と「パラメータリスト」は両方とも呼び出し時にユーザーが提供する。
例えば:pm.execute('com.apidog.Base64EncodeDemo.jar', ['abc','bcd'])の場合、実際に実行されるコマンドはjava -jar "com.apidog.Base64EncodeDemo.jar" "abc" "bcd"となる。
プログラムファイルの拡張子とコマンドプレフィックスの対応表:
言語コマンドプレフィックスファイル拡張子
Javajava -jar.jar
Pythonpython.py
PHPphp.php
JavaScriptnode.js
BeanShelljava bsh.Interpreter.bsh
Gogo run.go
Shellsh.sh
Rubyruby.rb
Lualua.lua
Rustcargo run.rs
Pythonpython.py

API#

pm.executeAsync#

filePath string 外部プログラムのパス
args string[] パラメータ。jarパッケージ内の特定メソッドを呼び出す場合、JSON.stringifyが変換に使用される。それ以外の場合、_string_型以外は暗黙的に_string_に変換される。
options Object
command string 外部プログラムの実行コマンド。「コマンドプレフィックス」の最初の部分が実行コマンドとなる。オプション、デフォルト値は自動的に推測される(上記の「コマンドプレフィックス」表を参照)。任意のプログラムにカスタマイズ可能。
cwd string サブプロセスの作業ディレクトリ。オプション、デフォルトは「外部プログラムディレクトリ」。
env Record<string, string> サブプロセスの環境変数。オプション、デフォルトは{}。
windowsEncoding string Windows システムで使用するエンコーディング。オプション、デフォルトは"cp936"。
className string jarパッケージ内で呼び出すクラス名(例:"com.apidog.Utils")。オプション。
method string jarパッケージ内で呼び出すメソッド名(例:"add")。オプション(classNameに値がある場合は必須)。
paramTypes string[] jarパッケージ内で呼び出すメソッドのパラメータ型(例:["int", "int"])。オプション、デフォルトはパラメータに基づいて自動推測される。
戻り値: Promise<string>
commandパラメータの使用
デフォルトではApidogは.pyファイルの実行にpythonを使用する。コンピュータにpython3がインストールされている場合、commandをpython3に指定できる。

pm.execute#

TIP
pm.executeAsyncの使用を推奨する。詳細はコード移行手順を参照。
pm.execute(filePath, args, options)
filePath string 外部プログラムのパス
args string[] パラメータ。jarパッケージ内の特定メソッドを呼び出す場合、JSON.stringifyが変換に使用される。それ以外の場合、_string_型以外は暗黙的に_string_に変換される。
options Object
windowsEncoding string Windowsシステムで使用するエンコーディング。オプション、デフォルトは"cp936"。
className string jarパッケージ内で呼び出すクラス名(例:"com.apidog.Utils")。オプション。
method string jarパッケージ内で呼び出すメソッド名(例:"add")。オプション(classNameに値がある場合は必須)。
paramTypes string[] jarパッケージ内で呼び出すメソッドのパラメータ型(例:["int", "int"])。オプション、デフォルトはパラメータに基づいて自動推測される。
戻り値: string

実行とログ#

プログラムを実行する際、実行されたコマンドがコンソールに表示される(参考用)。結果が期待通りでない場合は、そのコマンドをコピーしてShell/CMDに貼り付けてデバッグできる。
コンソールには実行されたプロセスの「標準出力(stdout)」と「標準エラー出力(stderr)」も表示される。stdout の内容(末尾の改行文字を除く)が実行の最終結果となる。
TIP
歴史的な理由により、pm.executeはstderrに内容がある場合に実行が失敗したと判断する。これにより、警告やエラーメッセージを出力する一部のプログラムが失敗することがある。pm.executeAsyncでは、プロセスの終了コードを使用して実行が失敗したかどうかを判断するように変更されている。

外部プログラムの入出力#

パラメータ#

指定された外部プログラムはコマンドライン実行で動作するため、コマンドライン引数を通じてのみパラメータを取得できる。
例えば、スクリプトpm.executeAsync('add.js', [2, 3])では、実際に実行されるコマンドはnode add.js 2 3となる。外部スクリプトadd.jsでパラメータを取得するには:
TIP
1.
コマンドライン引数の取得方法はプログラミング言語によって異なるため、対応する言語のドキュメントを参照してね。
2.
コマンドライン引数の型は常に_string_なので、実際の型に応じて変換する必要がある。

戻り値#

前述の通り、Apidogはstdoutの内容をプログラム実行の結果として使用する。そのため、stdoutに内容を出力することで結果を返すことができる。
例えば、スクリプトconst result = await pm.executeAsync('add.js', [2, 3])では、以下のように結果を返すことができる:
TIP
1.
stdoutへの出力方法はプログラミング言語によって異なるため、対応する言語のドキュメントを参照してね。
2.
戻り値の型は_string_なので、実際の型に応じて変換する必要がある。
3.
結果の末尾の改行文字は削除される。
4.
jarパッケージ内の特定メソッドを呼び出す場合、呼び出されたメソッドの戻り値が最終的な戻り値として使用される。

エラーのスロー#

エラーをスローすることで、現在のタスクを失敗させ、実行を停止できる。例:
TIP
1.
エラーのスロー方法はプログラミング言語によって異なるため、対応するドキュメントを参照してね。
2.
JavaScriptでは、console.error('Error')はエラーをスローするのではなく、単にstderrに出力するだけ。他の言語を使用する際もこの点に注意してね。

デバッグ情報#

pm.executeAsyncは実行の成否の判断にstderrではなく終了コードを使用するため、stderrを実行に影響を与えずにデバッグ情報の出力に使用できる。
例:
TIP
1.
このデバッグ情報の出力方法はpm.executeAsyncでのみサポートされている。
2.
stderrへの出力方法はプログラミング言語によって異なるため、対応するドキュメントを参照してね。

pm.executeからpm.executeAsyncへの移行#

pm.executeAsyncの戻り値は_Promise_型のため、executeを直接executeAsyncに変更することはできない。ただし、async/awaitを使用することで最小限の変更で移行できる。
TIP
Apidogバージョン >= 2.3.24(CLIバージョン >= 1.2.38)ではトップレベルawaitをサポートしている。
手順:
1.
executeをexecuteAsyncに変更する
2.
関数呼び出しの前にawaitを追加する

.jarパッケージ内の特定メソッドの呼び出し#

TIP
この機能にはApidogバージョン>= 2.1.39が必要。内部ランタイムリフレクションを使用するSpring Bootのようなjarではなく、リフレクションで呼び出し可能なjarのみをサポートしている。
デフォルトでは、jarを呼び出すとMainクラスのmainメソッドが実行される。options.classNameが指定された場合、デフォルトの動作を上書きし、代わりにjar内の指定されたメソッドを呼び出す。
jarパッケージ内の特定メソッドの呼び出しは、他の外部プログラムとは異なる。Apidogは組み込みの実行プログラムを使用して、リフレクションによってjar内のメソッドを見つけて呼び出す。呼び出されたメソッドに戻り値がある場合、その値を文字列に変換して最終的な戻り値として使用する。それ以外は他の呼び出しと同様に、stdout の内容を戻り値として使用する。
例:
実際に実行されるコマンド:
ここで、<app-dist>/assets/JarExecuter-1.1.0-jar-with-dependencies.jarは組み込みの実行プログラムで、ユーザープログラム./scripts/jar-1.0-SNAPSHOT.jar内のメソッドcom.apidog.Test.combine(String,String)をリフレクションで見つけ、パラメータ(JSON文字列)"hello"と"world"で呼び出す役割を担う。
TIP
paramTypesはオプションだ。指定しない場合、パラメータに基づいて型が自動的に推測される。整数は"int"として、浮動小数点数は"double"として、真偽値は"boolean"として、文字列は"String"として推測される。配列は最初の要素に基づいて推測される(例:[3]は"int[]"として、[3.14]は"double[]"として推測される)。
推測された型が呼び出されるメソッドの実際のパラメータ型と一致しない場合、paramTypesを手動で指定する必要がある。
paramTypes配列でサポートされる値:"Number"、"int"、"Integer"、"long"、"Long"、"short"、"Short"、"float"、"Float"、"double"、"Double"、"boolean"、"Boolean"、"String"、"Number[]"、"int[]"、"Integer[]"、"long[]"、"Long[]"、"short[]"、"Short[]"、"float[]"、"Float[]"、"double[]"、"Double[]"、"boolean[]"、"Boolean[]"、"String[]"
そのため、上記の例のparamTypesは省略できる:

例#

1. PHPプログラム#

スクリプト:
test.php:

2. Jarプログラム#

スクリプト:
com.apidog.utils.jar:

よくある問題#

1. 一部のプログラムではプロジェクト設定ファイルが必要で、不足するとエラーになる#

RustとGo:
Rust:
could not find `Cargo.toml` in `<...>/ExternalPrograms` or any parent directory
Go:
go.mod file not found in current directory or any parent directory; see 'go help modules'
解決策:pm.executeAsyncを使用し、cwdを指定する。

2. MacOSにはPython 3が組み込まれているがPython 2はない#

pm.executeAsyncを使用し、commandを"python3"に設定する。

3. Command xxxが見つからない#

対応するプログラムをインストールし、必要なディレクトリをシステムのPATHに追加する。Java環境のインストールについてはドキュメントを参照してね。

4. 一部のWindowsシステムで外部スクリプトの呼び出しが文字化けする#

windowsEncodingを'utf-8'に設定する
Previous
共通スクリプト
Next
JSライブラリの使用
Built with