Apidogは強力なMock機能を提供しており、APIレスポンスを細かく制御してシミュレートすることができます。このドキュメントでは、Mockデータをカスタマイズする主な2つの方法を紹介します。1.
特定フィールドのカスタマイズ: Mockレスポンス内の特定のフィールドを制御し、他のフィールドはスマートMockを使用します。
2.
レス ポンス全体のカスタマイズ: 固定、条件付き、動的レスポンスをサポートする期待値を用いて、Mockレスポンス全体を定義します。
特定フィールドのカスタマイズ#
時には、レスポンス内の特定のフィールドに対して特定の値を定義し、残りのフィールドはApidogに自動生成(スマートMock)させたい場合があります。Apidogはこれを柔軟に処理する方法を提供しています。カスタムフィールド値の設定方法#
1. 値を直接入力#
API仕様のMockフィールドに固定値を直接指定すると、Apidogは常にそのフィールドに対してこの値を返します。指定されていないフィールドはすべてApidogのスマートMock生成を使用します。2. Faker.jsの動的値を使 用#
Apidogの動的値(Faker.jsに基づく)を使用して、リアルなランダムデータを生成できます。以下の構文を使用します。ランダムなフルネーム: {{$person.fullName}}
、結果例: Rachel Wheeler
メールアドレス: {{$internet.email}}
、結果例: Arno.Huels33@yahoo.com
商品名: {{$commerce.productName}}
、結果例: Elegant Plastic Bike
3. パラメータ付きFakerメソッドを使用#
Apidogの拡張Faker.js構文に従って、より専門的なデータのために動的値メソッドにパラメータを渡すことができます。
例:{{$number.int(min=0,max=10000)}}
{{$phone.number(style='human')}}
{{$number.int(multipleOf=3)}}
{{$helpers.arrayElement(['red','blue','green'])}}
{{$date.between(from='2024-01-01',to='2024-12-31',format='yyyy-MM-dd')}}
4. 複数の動的式を連結(完全な住所の例を生成)#
静的テキストと複数の動的式を自由に組み合わせて、複雑なフィールド値を生成できます。例えば、リアルな完全住所を1つの文字列で生成するには、次のように書きます。{{$location.streetAddress}}, {{$location.city}}, {{$location.state}}, {{$location.zipCode}}, {{$location.country}}
"8507 Hudson Alley, Rochester, Wisconsin, 96512, United States"
各部分は動的に生成され、モックAPIが呼び出されるたびにユニークでリアルな住所が作成されます。Apidogはカスタマイズ可能なMockロケールをサポートしており、ターゲット地域やオーディエンスに合わせた異なる言語やフォーマットで動的なテストデータを生成することができます。Mockロケールの設定方法について詳しくは、Mock言語 (ロケール)をご覧ください。 Mockレスポンス全体のカスタマイズ(Mock期待値)#
特定または高度にカスタマイズされたMockレスポンスを返す必要がある場合は、「Mock期待値」を使用します。これにより、Mockサービスが返す内容を完全に制御できます。Mock期待値の設定#
固定データの返却#
無条件の期待値を設定して、常に同じデータを返すことができます。4.
提供されたMock URLをコピーして、このAPIにアクセスします。
条件付きデータの返却#
リクエストパラメータに基づいて異なるMockデータを返すことができます。ApidogのMock期待値は、パラメータベースの条件をサポートしています。Mockエンジンは、これらの条件に一致するリクエストを上から下にマッチングし、最初に一致した期待値を返します。
条件が一致しない場合、Apidogはプロジェクト設定 > 機能設定 > Mock設定で設定されたMockメソッドの優先順位にフォールバックします。
ボディパラメータの場合、プロパティへのJSONパスを指定します。条件は交差(すべて一致する必要があります)として組み合わされます。BodyパラメータはJSONのみをサポートし、XMLはサポートしていません。
パラメータ条件は{{variables}}
を使用できません。
期待値マッチングにBodyパラメータを使用する場合、リクエストBodyの形式はAPI仕様に一致している必要があります(例: form-data、JSONなど)。
特定のIPに対してレスポンスを制限するために、IPアドレス条件を追加することもできます。
動的Mockデータの返却#
{
"data": [
{% for i in range(0, 20) %}
{% if i>1 %},{% endif %}
{
"id": {{i}},
"firstname": "{{$person.firstName}}",
"lastname": "{{$person.lastName}}"
}
{% endfor %}
],
"success": true
}
20のユーザーオブジェクトの配列(id = 0から19)
各オブジェクトにはランダムに生成された"firstname"と"lastname"が含まれます
{{$...}}
構文はFaker.jsを呼び出してランダムな値を生成します。
Nunjucksはループ({% for ... %}
)やロジックに使用されます。
{{i}}
はNunjucksのループ変数を指します—Apidogの変数ではありません。
ApidogはFaker.jsの表現に{{$...}}
を使用します(ネイティブJS呼び出し構文ではありません)。Faker.js(ネイティブ): faker.person.firstName()
Apidog: {{$person.firstName}}
Apidogのプロジェクト/環境変数({{variable}}
のような)はMock期待値では利用できません。
その他の機能#
カスタムレスポンスヘッダー
認証、ページネーション、その他のAPI契約をシミュレートするために、Mock期待値にカスタムヘッダーを追加できます。 高度なレスポンスプロパティ
Mock期待値内の「詳細」タブで以下を設定できます:HTTPステータスコード: エラーや特別なケースをシミュレート(デフォルトは200)。
レスポンス遅延: 遅いAPIレスポンスをシミュレートするために遅延を追加(ミリ秒単位)。
期待値の有効化/無効化
期待値リストからローカルおよびクラウドMock環境で各期待値を個別にオン/オフできます。
まとめ#
ApidogのカスタムMockを使用すると、以下が可能です:柔軟性のために特定のMock値と自動生成データを混在させる。
包括的なテストシナリオのために、完全な固定、条件付き、または動的レスポンスを定義する。
Faker.jsとNunjucksを活用して、強力でリアルな可変Mockデータを作成する。
ヘッダー、遅延、ステータスコードなどをシミュレートする。
これらの機能を活用して、本番APIを反映した堅牢で高忠実度なAPIシミュレーションを作成しましょう! Modified at 2025-04-25 09:28:37