EchoAPIの動的値・カスタム関数の強力機能

EchoAPIの動的値とカスタム関数は、動的パラメータと複雑なロジックを自動化し、APIテストを効率化します。手作業によるエラーを排除し、多段階ワークフローや地域ごとのコンプライアンス対応におけるデバッグを大幅に高速化します。

動的値とカスタム関数は、EchoAPI が API デバッグ効率を高め、複雑なビジネスロジックに応じるためのコア機能です。特に複数ステップのデバッグ、動的パラメータの依存関係、地域別の要件対応において極めて重要です。以下、具体的なユースケースを交えて詳細に解説します。

一、動的値:「シナリオ依存パラメータ」への対応

動的値とは、手動入力不要でツールが自動生成またはリアルタイムで取得するパラメータ(例:タイムスタンプ、ランダム値、前段 API のレスポンス値など)を指し、「パラメータの動的変化」や「複数 API 間でのパラメータ依存」といった課題を解消します。

EchoAPI動的値.png

典型例:EC 注文作成→決済の API チェーン検証(API 間パラメータ依存)

シナリオ

あるアメリカの EC 開発者が「注文作成 → 支払い開始」の API フローをデバッグするための流れ:

1. 注文作成 API:呼び出すとユニークな orderId が返される(毎回新規生成)。

orderId を環境変数として保存

EchoAPI環境変数として保存.png

スクリプト実行で環境変数を作成

EchoAPIスクリプト実行で環境変数を作成.png

API 実行でランダム関数の値を確認

EchoAPIAPI 実行でランダム関数の値を確認.png

関数を選択し挿入

EchoAPI関数を選択し挿入.png

モックデータ関数をクリック

EchoAPI注文作成 API.png
2. 決済 API: 前段で生成された orderId が必須。さらに timestamp(タイムスタンプでリクエストの新鮮さ担保)と nonce(リプレイ対策のランダム文字列)が必要。
決済 API1.png
決済 API2.png

動的値の使い方

  1. 注文作成後に EchoAPI の「動的値ー後処理」機能で orderId を自動抽出し環境変数に設定。
  2. 決済 API 呼び出しの際、以下のように動的値を選択:
    • orderId:環境変数から引用
    • timestamp:システム動的値 → 時間(ミリ秒単位時間を自動生成)
    • nonce:システム動的値 → ランダム文字列(規定フォーマットに合致した値を自動生成)
EchoAPI動的値の使い方.png

主なメリット

  • 手動入力ミスの排除:orderId やタイムスタンプを手入力する必要がなく、誤入力(桁抜けなど)によるデバッグ失敗を防止。
  • デバッグ効率の向上:API 間依存のパラメータ受け渡しが自動化され、通常5 分かかる操作を 1 分以内に短縮可能。
  • 多地域タイムゾーンに対応:UTC、JST、日本時間、米国時間、インドネシア時間などを自動生成し、地域によるタイムゾーン差を意識せずにデバッグ可能。

二、EchoAPI システム基本動的値の詳細

EchoAPI には、事前条件なしにリアルタイム生成可能な、よく使う基本パラメータを即利用できる システムベースの動的値 機能があります。デフォルトで豊富に用意されており、API デバッグで一般的なパラメータ要件を網羅します。

1. 時間系動的値

最も頻繁に使われる動的値で、タイムスタンプや日時が必要なシーンに役立ちます。タイムゾーンも幅広くサポート。

動的値名 形式例 説明 利用シーン
Unix タイムスタンプ(ミリ秒) 1620000000000 1970-01-01 UTC からのミリ秒数 リプレイ防止、時刻記録
Unix タイムスタンプ(秒) 1620000000 同上、秒単位 API によって秒単位を要求される場合
UTC 時間文字列 2023-06-15T12:00:00Z Z タイムゾーン付き標準表現 国際 API
ローカル時間文字列 2023-06-15 20:00:00 システムタイムゾーンに依存 ローカル環境の業務 API
日本時間(JST) 2023-06-15 21:00:00 UTC+9 日本向け API
インドネシア時間(WIB) 2023-06-15 19:00:00 UTC+7 インドネシア向け API
米国西部時間(PST/PDT) 2023-06-15 05:00:00 太平洋時間 米国西海岸 API
日付文字列(YYYY-MM-DD) 2023-06-15 年月日だけ 日付指定の API
相対時間計算 現在時刻+1 時間 相対的な日時指定可 有効期限(例:トークン期限)

利点:異なるタイムゾーンの時刻を簡単に生成でき、国境をまたぐ業務にも便利。

2. ランダム系動的値

リプレイ防止やテストデータに活用できる、予測不能なランダム値を生成可能。

動的値名 例形式 説明 利用シーン
ランダム整数 12345 範囲指定可能(例:1000–9999) テスト ID 生成
ランダム文字列 x7Bp9Q 長さや文字集合を指定可能 nonce(リプレイ防止)
ランダム UUID f47ac10b-... UUID v4 形式 識別子生成
ランダム真偽値 true / false どちらかをランダム生成 条件分岐テスト
ランダムメール test_123@example.com メール形式準拠 テストアカウント生成
ランダム電話番号 +12065551234 国コード指定可 テストユーザー電話
ランダム IP アドレス 0.0.0.0 IP 形式準拠 IP ごとのリクエスト試験

利点:業務仕様に合わせて自動生成でき、テストデータ作成を大幅に簡素化。

3. 環境情報動的値

現在の実行環境に関する情報を取得し、識別や環境依存処理に利用可能。

名称 例 説明 利用シーン
プロジェクト ID proj_123456 現在のプロジェクト識別子 ログ追跡
環境名 production 開発/テスト/本番など 環境依存処理
ローカル IP 0.0.0.0 マシンの IP IP 固定が必要な API
ホスト名 my-laptop マシン名 デバイス識別
EchoAPI バージョン 2.3.0 使用中バージョン 互換性確認
OS Windows 10 / macOS 12 実行環境 OS OS 特有の API

利点:環境情報を自動取得し、手入力や誤記のリスクを減少。

4. 定数・フォーマット系動的値

任意の定数やフォーマット文字を備え、パラメータ整備を支援。

名称 表現例 説明 利用シーン
null null null 値 オプションのデフォルト
空文字列 "" 空の文字列 空値指定
改行 \n 改行文字 テキスト整形
タブ \t タブ文字 テキスト整形
空白 (空白) スペース 区切り文字
空 JSON オブジェクト {} 空オブジェクト デフォルト値
空 JSON 配列 [] 空リスト デフォルト配列

利点:標準定数により、形式ミスを防ぎ HTTP エラーを低減。

5. システム基本動的値の特性

  • 即使用可能:設定不要で起動直後から使用可
  • リアルタイム生成:毎回のリクエストで新規生成、一意性を担保
  • オフライン利用可:ローカル生成のため、ネット無しでも使用可
  • 跨プラットフォーム整合性:本体・VSCode/IDEA プラグイン一致動作
  • 動的値との組み合わせ可能:他の動的値やカスタム関数と自由に組み合わせ可能

例:

ORDER_{{$fakerjs.Date.birthdate|format(YYYY/MM/DD HH:mm:ss,+08:00)}}{{$fakerjs.String.uuid}}
10.png

まとめ:時間、ランダム値、環境情報、定数生成に優れ、パラメータ処理の手間と誤りを大幅に軽減。

三、カスタム関数:独自ロジックのデバッグ課題を解決

動的値だけでは足りない場合は、EchoAPI 内で JavaScript によるカスタム関数 を定義可能。パラメータ暗号化、独自フォーマット変換、検証ロジックなど、業務固有の要求に対応します。

例:金融 API のパラメータ暗号化(カスタム規則)

シナリオ

Fintech 開発者が「ユーザーカード連携 API」デバッグ中、以下の要件に直面:

1. phone のような敏感データを MD5 方式(独自規則)で暗号化。
シナリオ.png


シナリオ.png
2. 暗号化データに IDN_FIN_ のプレフィックス追加が必要。
暗号化データに  のプレフィックス追加が必要.png

カスタム関数の使い方

1. EchoAPI のカスタム関数モジュールでスクリプトを作成:

try {
  let hash = 0;
  if (text.length === 0) return hash.toString(16);
  for (let i = 0; i < text.length; i++) {
    let char = text.charCodeAt(i);
    hash = ((hash << 5) - hash) + char;
    hash = hash & hash;
  }
  return hash.toString(16);
} catch (e) {
  return text;
}

パラメータで関数参照設定

パラメータで関数参照設定.png

スクリプト入力・テスト結果確認

スクリプト入力・テスト結果確認.png

新規作成をクリック

新規作成をクリック.png

カスタム関数管理を選択

カスタム関数管理を選択.png

カスタム関数をクリック

カスタム関数をクリック.png

2. API 呼び出し時に phone パラメータに「カスタム関数 → MD5Encrypt」を選択し、元データを渡すと、自動で暗号化+プレフィックス付きで送信。

PI 呼び出し時に  パラメータに「カスタム関数 → MD5Encrypt」を選択し、元データを渡すと、自動で暗号化+プレフィックス付きで送信.png

主なメリット

  • 個別要件への対応:標準機能で難しい暗号ルールやプレフィックス仕様も内蔵可能。
  • 構築負担削減:ローカル環境を構築せずとも、EchoAPI 上で関数作成と再利用が可能。
  • 地域ごとの要件適用:地域間で異なる規制に応じたカスタム処理も簡単に準備可能。

四、EchoAPI システム基本カスタム関数の詳細解説

EchoAPI には一連のシステム基本カスタム関数が組み込まれており、ユーザーがコードを書く必要なくそのまま利用できます。これらは文字列操作、データ変換、暗号化・復号化など、API デバッグで最もよく使われる汎用処理ロジックをカバーしています。動的値と組み合わせることで、パラメータ処理の効率を大幅に向上させることができます。

一、文字列処理関数

このカテゴリーの関数は、文字列の変換や処理に特化しており、API が要求するさまざまなパラメータ形式に対応できます。

関数名 構文 説明 例
strToUpper strToUpper(str) 大文字に変換 strToUpper("hello") → "HELLO"
strToLower strToLower(str) 小文字に変換 strToLower("HELLO") → "hello"
strTrim strTrim(str) 前後の空白を除去 strTrim(" test ") → "test"
strPadLeft strPadLeft(str, length, padStr) 左側に文字を詰める strPadLeft("123", 5, "0") → "00123"
strPadRight strPadRight(str, length, padStr) 右側に文字を詰める strPadRight("123", 5, "0") → "12300"
strReplace strReplace(str, search, replace) 文字列を置換 strReplace("hello", "l", "x") → "hexxo"
strSubstring strSubstring(str, start, length) 部分文字列を取得 strSubstring("hello", 1, 3) → "ell"
strConcat strConcat(...strs) 複数文字列を結合 strConcat("a", "b", "c") → "abc"
strLength strLength(str) 文字列の長さを取得 strLength("hello") → 5
strEncodeURI strEncodeURI(str) URL エンコード strEncodeURI("a b") → "a%20b"
strDecodeURI strDecodeURI(str) URL デコード strDecodeURI("a%20b") → "a b"

実用例:米国の EC サイトの商品 ID を処理する際、大文字に統一しゼロ埋めして固定長に揃える。

二、データ変換関数

異なるデータ型の変換やフォーマットの標準化に利用します。

関数名 構文 説明 例
toNumber toNumber(value) 数値に変換 toNumber("123") → 123
toString toString(value) 文字列に変換 toString(123) → "123"
toBoolean toBoolean(value) 真偽値に変換 toBoolean("true") → true
parseJson parseJson(str) JSON 文字列を解析 parseJson('{"a":1}') → {a:1}
stringifyJson stringifyJson(obj) JSON オブジェクトを文字列化 stringifyJson({a:1}) → '{"a":1}'
formatDate formatDate(timestamp, format) 日付をフォーマット formatDate(1620000000000, "YYYY-MM-DD") → "2021-05-03"
parseDate parseDate(dateStr, format) 日付をタイムスタンプに変換 parseDate("2021-05-03", "YYYY-MM-DD") → 1620000000000
arrayJoin arrayJoin(arr, separator) 配列を文字列に変換 arrayJoin([1,2,3], ",") → "1,2,3"
arraySplit arraySplit(str, separator) 文字列を配列に分割 arraySplit("1,2,3", ",") → [1,2,3]

地域対応:formatDate は各地域に応じた日付フォーマットに対応(例:日本 "YYYY年MM月DD日"、インドネシア "DD/MM/YYYY")。

三、暗号化・エンコード関数

一般的な暗号アルゴリズムやエンコード方式を提供し、API セキュリティ要件に対応します。

関数名 構文 説明 例
md5 md5(str) MD5 ハッシュを計算 md5("hello") → "5d41402abc4b2a76b9719d911017c592"
sha1 sha1(str) SHA1 ハッシュを計算 sha1("hello") → "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d"
sha256 sha256(str) SHA256 ハッシュを計算 sha256("hello") → 対応する値
base64Encode base64Encode(str) Base64 エンコード base64Encode("hello") → "aGVsbG8="
base64Decode base64Decode(str) Base64 デコード base64Decode("aGVsbG8=") → "hello"
hmacMd5 hmacMd5(str, key) HMAC-MD5 暗号化 hmacMd5("hello", "key") → 対応値
hmacSha256 hmacSha256(str, key) HMAC-SHA256 暗号化 hmacSha256("hello", "key") → 対応値
urlSafeBase64Encode urlSafeBase64Encode(str) URL セーフ Base64 エンコード + を - に、/ を _ に置換

実用例:インドネシアの金融 API でリクエストパラメータを HMAC-SHA256 で暗号化し、通信の安全性を確保。

四、数学・論理関数

計算や条件分岐を提供し、動的パラメータの算出をサポートします。

関数名 構文 説明 例
mathAdd mathAdd(a, b) 加算 mathAdd(2, 3) → 5
mathSubtract mathSubtract(a, b) 減算 mathSubtract(5, 2) → 3
mathMultiply mathMultiply(a, b) 乗算 mathMultiply(2, 3) → 6
mathDivide mathDivide(a, b) 除算 mathDivide(6, 2) → 3
mathRound mathRound(num, precision) 四捨五入 mathRound(3.1415, 2) → 3.14
mathRandom mathRandom(min, max) 乱数生成 mathRandom(1, 10) → 5(例)
ifElse ifElse(condition, trueVal, falseVal) 条件分岐 ifElse(1>2, "yes", "no") → "no"
isEmpty isEmpty(value) 空判定 isEmpty("") → true
isEqual isEqual(a, b) 等価判定 isEqual(2, "2") → false

実用例:米国 EC の注文税額(商品価格×税率)を計算し、小数点以下 2 桁に四捨五入。

五、システムユーティリティ関数

システム環境に関連するユーティリティ機能を提供します。

関数名 構文 説明 例
getEnv getEnv(name) 環境変数を取得 getEnv("apiUrl") → apiUrl の値を返す
setEnv setEnv(name, value) 環境変数を設定 setEnv("token", "xxx") → token を設定
sleep sleep(ms) 実行を遅延(ミリ秒) sleep(1000) → 1 秒待機
log log(message) コンソールにログ出力 log("リクエスト開始")
uuid uuid() UUID を生成 uuid() → ランダム UUID
timestamp timestamp(ms?) 現在のタイムスタンプを取得 timestamp() → 現在時刻(ms)

実用例:リクエスト前に環境変数を設定、または複雑なフローでログを出力しデバッグを容易化。

六、システム基本カスタム関数の特徴

  1. 設定不要:すべてのシステム関数は組み込み済みで、そのまま利用可能
  2. クロスプラットフォーム互換:EchoAPI 本体と全プラグインで同じ挙動

関数の組み合わせ:入れ子呼び出しにより複雑なロジックを実現

// 例:タイムスタンプ付き署名を生成
try {
    const timestamp = new Date().getTime();
    const signature = `${text}-${timestamp}`;
    return signature;
} catch (error) {
    return text;
}
システム基本カスタム関数の特徴.png
システム基本カスタム関数の特徴.png
  1. オフライン対応:すべての関数はローカル実行され、ネット接続不要
  2. 地域対応:日付処理など、一部の関数は地域ごとに最適化

システム基本カスタム関数は API デバッグで必要となる処理の 80%以上をカバーしており、動的値と組み合わせることで大部分のパラメータ処理を自動化できます。これによりユーザーがカスタムスクリプトを記述する手間を削減し、迅速なデバッグや標準化された処理フローに最適です。

まとめ:動的値とカスタム関数のコア価値

機能 解決する主要課題 多地域開発者への追加価値
動的値 パラメータの動的変化、API 間の依存 タイムゾーン別の日時フォーマット自動適応
カスタム関数 個別ロジック(暗号化、形式変換など) 各地域の業務ルールや規制要件に迅速対応

両者を組み合わせることで手動操作を大幅に削減し、開発者は「業務ロジックの検証」に集中できます。特に米国・日本・インドネシアなど多地域における差異のあるデバッグ要件にも適応可能です。