EchoAPIの動的値・カスタム関数の強力機能
EchoAPIの動的値とカスタム関数は、動的パラメータと複雑なロジックを自動化し、APIテストを効率化します。手作業によるエラーを排除し、多段階ワークフローや地域ごとのコンプライアンス対応におけるデバッグを大幅に高速化します。
動的値とカスタム関数は、EchoAPI が API デバッグ効率を高め、複雑なビジネスロジックに応じるためのコア機能です。特に複数ステップのデバッグ、動的パラメータの依存関係、地域別の要件対応において極めて重要です。以下、具体的なユースケースを交えて詳細に解説します。
一、動的値:「シナリオ依存パラメータ」への対応
動的値とは、手動入力不要でツールが自動生成またはリアルタイムで取得するパラメータ(例:タイムスタンプ、ランダム値、前段 API のレスポンス値など)を指し、「パラメータの動的変化」や「複数 API 間でのパラメータ依存」といった課題を解消します。

典型例:EC 注文作成→決済の API チェーン検証(API 間パラメータ依存)
シナリオ
あるアメリカの EC 開発者が「注文作成 → 支払い開始」の API フローをデバッグするための流れ:
1. 注文作成 API:呼び出すとユニークな orderId
が返される(毎回新規生成)。
orderId
を環境変数として保存

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

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

関数を選択し挿入

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

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


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

主なメリット
- 手動入力ミスの排除:
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}}

まとめ:時間、ランダム値、環境情報、定数生成に優れ、パラメータ処理の手間と誤りを大幅に軽減。
三、カスタム関数:独自ロジックのデバッグ課題を解決
動的値だけでは足りない場合は、EchoAPI 内で JavaScript によるカスタム関数 を定義可能。パラメータ暗号化、独自フォーマット変換、検証ロジックなど、業務固有の要求に対応します。
例:金融 API のパラメータ暗号化(カスタム規則)
シナリオ
Fintech 開発者が「ユーザーカード連携 API」デバッグ中、以下の要件に直面:
1. phone
のような敏感データを MD5 方式(独自規則)で暗号化。


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

カスタム関数の使い方
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;
}
パラメータで関数参照設定

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

新規作成をクリック

カスタム関数管理を選択

カスタム関数をクリック

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

主なメリット
- 個別要件への対応:標準機能で難しい暗号ルールやプレフィックス仕様も内蔵可能。
- 構築負担削減:ローカル環境を構築せずとも、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) |
実用例:リクエスト前に環境変数を設定、または複雑なフローでログを出力しデバッグを容易化。
六、システム基本カスタム関数の特徴
- 設定不要:すべてのシステム関数は組み込み済みで、そのまま利用可能
- クロスプラットフォーム互換:EchoAPI 本体と全プラグインで同じ挙動
関数の組み合わせ:入れ子呼び出しにより複雑なロジックを実現
// 例:タイムスタンプ付き署名を生成
try {
const timestamp = new Date().getTime();
const signature = `${text}-${timestamp}`;
return signature;
} catch (error) {
return text;
}


- オフライン対応:すべての関数はローカル実行され、ネット接続不要
- 地域対応:日付処理など、一部の関数は地域ごとに最適化
システム基本カスタム関数は API デバッグで必要となる処理の 80%以上をカバーしており、動的値と組み合わせることで大部分のパラメータ処理を自動化できます。これによりユーザーがカスタムスクリプトを記述する手間を削減し、迅速なデバッグや標準化された処理フローに最適です。
まとめ:動的値とカスタム関数のコア価値
機能 | 解決する主要課題 | 多地域開発者への追加価値 |
---|---|---|
動的値 | パラメータの動的変化、API 間の依存 | タイムゾーン別の日時フォーマット自動適応 |
カスタム関数 | 個別ロジック(暗号化、形式変換など) | 各地域の業務ルールや規制要件に迅速対応 |
両者を組み合わせることで手動操作を大幅に削減し、開発者は「業務ロジックの検証」に集中できます。特に米国・日本・インドネシアなど多地域における差異のあるデバッグ要件にも適応可能です。