フロントエンドチームがブロックされています。GET /usersとGET /ordersのバックエンドがまだ準備できていませんが、UIではリストの表示、ページネーション、空の状態の処理のために現実的なデータが必要です。従来の解決策は、手作業で偽のJSONファイルを作成して提供し、フィールドが変更されるたびに修正し続けることでした。この作業は退屈であり、実際のAPIとの同期がすぐにずれてしまいます。
もっと速い方法があります。すでにAPI仕様がある場合、Apidogは、設定もコードもなしに、エンドポイントスキーマから直接機能するモックを生成できます。この機能はSmart Mockと呼ばれ、フィールド名と型を読み取り、現実的なデータを作成します。たとえば、nameフィールドはもっともらしい名前を返し、emailフィールドはもっともらしいメールアドレスを返します。このガイドでは、2つのEコマースエンドポイントのモックをエンドツーエンドで作成する方法、モックURLの場所、どのレスポンスが優先されるかを決定する優先順位、そしてSmart Mockが間違った推測をした場合の対処法について説明します。最初にこの概念について広く知りたい場合は、APIモックとは何か、どのように機能するかの概要が背景を説明し、JSON SchemaサイトがSmart Mockが尊重する制約モデルを説明しています。
Smart Mockの機能と時間の節約になる理由
Apidogのモックエンジンは、ドキュメントによると5つのことができます。それは、API仕様から自動生成されたデータを返すこと(Smart Mock)、仕様で定義したレスポンス例を返すこと、指定したカスタムレスポンスを返すこと、リクエストパラメータに基づいて異なるレスポンスを返すこと(条件付きモック)、そしてモックスクリプトを介してリクエストに関連する値を持つレスポンスを返すことです。

Smart Mockは、そのファミリーの中で設定不要なメンバーであり、設計、デバッグ、テストツールとともにApidogに組み込まれています。例のボディを定義したり、ルールを書いたりする必要はありません。エンドポイントに指定されたレスポンススキーマがある限り、Smart Mockはそのスキーマを読み取り、すべてのフィールドを現実的な値で埋めます。これは自動フォールバックとして機能し、事前定義された例がないエンドポイントでも何らかの妥当な値を返すため、リクエストが空で戻ってくることはありません。
ブロックされたフロントエンドにとって、それが全てです。APIを一度インポートまたは設計すると、その瞬間にすべてのエンドポイントがライブモックになります。スキーマが変更されると、モックもそれに合わせて変更されます。なぜなら、どちらも単一のソースから読み取られるからです。
開始する前に:唯一の要件
Smart Mockはエンドポイントに指定されたレスポンスが必要です。それが唯一の前提条件です。ApidogでAPIを設計した場合、エンドポイントのレスポンス定義の下にレスポンススキーマを追加してください。OpenAPIファイルをインポートした場合、通常、レスポンススキーマも一緒にインポートされます。定義されたレスポンスがなければ、エンジンが読み取るものがなく、モックは有用なものを何も返しません。
また、Local Mockを使用する予定がある場合は、Apidogデスクトップクライアントが必要です。なぜなら、Local Mockは自身のマシンで実行され、Apidog Webでは利用できないからです。Apidogをダウンロードして、一緒に進めてみましょう。無料であり、クレジットカードは必要ありません。
ステップバイステップ:GET /usersとGET /ordersをモックする
小さなストアAPIのモックを作成してみましょう。2つのエンドポイントを定義し、両方を呼び出します。
ステップ1:エンドポイントとそのレスポンススキーマを定義する
GET /usersを次のようなレスポンスボディで作成します。
{
"id": 1024,
"name": "Amara Osei",
"email": "amara.osei@example.com",
"phone": "+1-415-555-0148",
"createdAt": "2026-03-11T09:24:00Z",
"isActive": true
}
次に、リストを返すGET /ordersを作成します。
[
{
"orderId": "ORD-58210",
"userId": 1024,
"total": 84.50,
"currency": "USD",
"status": "shipped",
"createdAt": "2026-05-02T14:03:00Z"
}
]
各プロパティがスキーマに型を持っていることを確認してください。Smart Mockが良い値を選択するために使用するのは、型と名前です。
ステップ2:モックURLを見つけてコピーする
すべてのエンドポイントには自動的にモックURLが割り当てられます。見つける場所は、現在のモードによって異なります。
- DESIGNモードでは、モックURLはエンドポイントの下のAPIタブにあります。
- DEBUGモードでは、Mockタブにあります。
「クリックしてコピー」をクリックしてURLを取得します。注意すべき点として、これはURLのみをコピーします。エンドポイントがGET以外のメソッドを使用する場合や、リクエストボディが必要な場合は、呼び出す際にメソッドとボディを自分で追加してください。
Local Mock URLは127.0.0.1ポート4523で実行され、パスモードでは次のようになります。
http://127.0.0.1:4523/m1/{projectID}-{versionNo}-{serverNo}/users
Local MockはApidogクライアントが開いている間、自動的に開始されます。エンドポイントをIDで指定するIDモード形式もあります。
http://127.0.0.1:4523/m2/{projectID}-{versionNo}-{serverNo}/{endpointId}
ステップ3:モックを呼び出す
curlでURLを叩いてみましょう。
curl http://127.0.0.1:4523/m1/1234567-0-0/users
スキーマから生成された次のようなものが返ってきます。
{
"id": 3187,
"name": "Diego Marchetti",
"email": "diego.marchetti@example.net",
"phone": "+1-628-555-0113",
"createdAt": "2026-01-27T18:41:22Z",
"isActive": true
}
nameが名前らしく、emailがメールアドレスらしく読めることに注目してください。これはProperty Name Matchingの機能であり、ランダムなノイズではありません。リクエストを更新すると動的な値が再生成されるため、呼び出すたびに新しいデータが得られます。これはUIが多様なコンテンツをどのように処理するかをテストするのに役立ちます。
同様にordersエンドポイントを呼び出します。
curl http://127.0.0.1:4523/m1/1234567-0-0/orders
リアルな合計、ステータス、タイムスタンプを持つ注文オブジェクトの配列が返され、注文リストビューにすぐに使用できます。
Smart Mockが各値をどのように決定するか
Smart Mockが単一のプロパティを埋める際、3段階のデータ生成優先順位に従って動作します。この順序を理解することで、出力を正確に制御する方法がわかります。
- モックフィールド(Mock Field)。レスポンス仕様でプロパティにカスタム値または式を設定した場合、それが優先されます。モックフィールドには2つの入力タイプがあります。固定値(Fixed value)は常に同じ静的値を返し、Fakerステートメントは多様なデータを生成する動的な式です。たとえば、
statusフィールドのモックフィールドを、shipped、pending、deliveredから選択するFakerステートメントに設定できます。 - プロパティ名マッチング(Property Name Matching)。モックフィールドが設定されていない場合、Smart Mockはプロパティ名をワイルドカードまたは正規表現パターンを使用して組み込みルールと照合し、それに合致するデータを生成します。これが
emailやcreatedAtが適切に出力される理由です。ルールはモック設定(Mock Settings)にあり、独自のルールを追加することもできます。 - JSONスキーマ(JSON Schema)。名前がどのルールとも一致しない場合、Smart Mockはスキーマによって制約されたタイプベースのデフォルトにフォールバックします。一致する名前や制約がない文字列は、汎用的な文字列になります。

生成されるデータは、文字列の長さ、列挙値、数値範囲、配列の長さなど、JSON Schemaの制約を常に尊重します。statusを3つの値の列挙型に設定した場合、Smart Mockは常にそれらの3つのうちの1つだけを返します。配列のminItemsを3に設定した場合、少なくとも3つの項目が返されます。すべてのプロパティ設定は最終的なモックデータに反映されます。
Apidogはモックロケールもサポートしており、異なる言語や地域形式でテストデータを生成できます。ストアが日本の市場をターゲットとしている場合、ロケールを切り替えることで、名前や住所が適切な形式で返されます。
Smart Mockが誤った推測をした場合、そしてそれを修正する方法
Smart Mockは推論を行うため、時に間違えることがあります。skuというプロパティが組み込みルールに一致せず、汎用的な文字列にフォールバックすることがあります。totalが、2桁の小数点以下と妥当な範囲を期待しているのに、ただの数値として返されることがあります。ここでは、最も軽い修正から最も制御力の高い修正まで、その修正方法を説明します。
まずスキーマを厳しくする。多くの場合、解決策はより良い制約です。statusにenumを追加したり、totalにminimumとmaximumを追加したり、skuにpatternを追加したりします。Smart Mockはこれらのすべてを尊重するため、カスタム値を設定しなくても出力が範囲内に収まります。
モックフィールドを設定する。スキーマだけでは表現したいことを表せない場合、プロパティのモックフィールドを設定します。フィールドが常に同じものを返す必要がある場合(例:currencyがUSD)、固定値(Fixed value)を使用します。範囲内で多様性を求める場合は、Fakerステートメントを使用します。ApidogのFakerレイヤーはMock.jsライブラリと同じ考え方に基づいており、ApidogでFakerを使用する方法に関するガイドで式の構文を詳しく説明しています。
プロパティ名マッチングルールを追加する。同じ誤った名前のフィールドが多くのエンドポイントに現れる場合、Smart Mockに一度教えれば済みます。設定(Settings)、「一般設定(General Settings)」、「機能設定(Feature Settings)」、「モック設定(Mock Settings)」の順に進みます。「新規(New)」をクリックし、フィールド名に一致する条件を定義し、モック式を与えます。それ以降、プロジェクト全体で各skuは、汎用的な文字列ではなく、定義したパターンを生成するようになります。
モック優先順位シーケンス:実際に何が優先されるか
よくある混乱の原因は、複数のレスポンスが可能な場合に、エンドポイントがどのレスポンスを返すかということです。Apidogは、プロジェクト設定のモック設定(Mock Settings)にある「Default mock method」設定でこれを解決します。これには2つのオプションがあります。
- Smart Mock First(デフォルト)は、「モック期待(Mock Expectation)」、次に「Smart Mock」の順序です。
- Response example firstは、「モック期待(Mock Expectation)」、次に「レスポンス例(Response Example)」、次に「Smart Mock」の順序です。
これらを左から右に読んでください。デフォルトでは、リクエストは一致するモック期待を探し、一致するものがない場合はSmart Mockがボディを生成します。「Response example first」に切り替えると、Smart Mockにフォールバックする前に、定義されたレスポンス例が確認されます。
どちらのシーケンスよりも優先されるルールが1つあります。それは、モック期待が設定されており、その条件が一致する場合、選択したシーケンスに関係なく、常に最優先されるということです。したがって、userIdが9999の場合に404を返す条件付きレスポンスを設定した場合、その期待は「Default mock method」に関係なく発動します。パラメータ駆動のレスポンスの詳細な手順については、Apidogでの条件付きAPIレスポンスのモックに関するガイドをご覧ください。
実用的な要約:カスタムのモック期待がすべてに勝ち、次に設定に応じてSmart Mockまたはレスポンス例が適用されます。Smart Mockは常に最後の手段のフォールバックであり、そのためすべてのリクエストがレスポンスを受け取ります。
Local、Cloud、Runner Mock:モックの実行場所
Smart MockとCustom Mockは、レスポンスがどのように生成されるかを記述します。そのモックがどこでホストされるかは別の選択であり、Apidogには3つのオプションがあります。
- Local Mockは、Apidogクライアントを介してあなたのコンピューター上で実行されます。自動的に起動し、クライアントが開いている間のみ到達可能です。
127.0.0.1:4523でリッスンするため、ネットワーク上の別のデバイスからは、あなたのマシンのLAN IPが必要です。Apidog Webでは利用できません。 - Cloud MockはApidogのサーバーでホストされ、24時間年中無休で到達可能です。デフォルトではオフになっているため、チームメイトやデプロイされたプレビューがモックにアクセスできるようにしたい場合は、環境管理でオンに切り替えてください。そのURLは
https://mock.apidog.comを使用し、同じm1/m2パス構造を持ちますが、テスト用であり、本番トラフィック用ではありません。 - Runner Mockは、あなたのチームのインフラストラクチャ上で自己ホストされ、チーム全体で共有されます。これは、モックがあなたのネットワーク内に存在すべき内部環境に適しています。
単独のフロントエンド作業にはLocal Mockを、他の人がアクセスする必要がある場合はCloud Mockを、モックが自身のサーバー上にあるべき場合はRunner Mockを選択してください。ホストオプションを他のサービスと比較検討している場合は、オンラインAPIモックツール比較でそれらを並べて比較しており、Apidog Cloud Mockガイドではホスト設定を詳しく説明しています。
知っておくべきルーティングの注意点
モックルーティングには、人々を戸惑わせるいくつかのルールがあります。
エンドポイントパスは/で始まる必要があります。/ordersのようなパスはモック環境を介して正しくルーティングされます。/で始まらない完全なURLはモック環境を全く使用せず、先頭にスラッシュのないパスはIDモードでのみ機能します。
2つのAPIが同じメソッドとパスを共有している場合、パスモードではそれらを独自に区別できません。正確なエンドポイントを指定するには、?apidogApiId={endpointId}クエリパラメータを追加してください。
そして、リフレッシュの動作を覚えておいてください。リクエストをリフレッシュすると、モックデータが更新されます。リフレッシュするたびに動的な値が再生成されるため、同じレスポンスが2回表示される場合、それはおそらくキャッシュされたビューであり、新しい呼び出しではありません。
Apidog CLIでワークフローを自動化する
モック自体は、ApidogのGUIおよびクラウド機能です。Local、Cloud、Runnerのいずれのモックエンジンもレスポンスを提供しますが、Apidog CLIはターミナルからモックサーバーをホストまたは起動しません。CLIが追加するのは、プロジェクトの進化に合わせてモックの背後にあるスキーマを正確に保つ方法です。
Smart Mockはエンドポイントスキーマから出力を生成するため、モックの品質は仕様の品質に依存します。Apidog CLI、およびCursor、Claude Code、Trae、CodexのようなAIコーディングエージェントがCLIを通じて機能することで、プロジェクトのエンドポイントとスキーマを作成および更新できます。これにより、契約が変更されるたびにモックの出力が正確に保たれ、誰もアプリを開いて手動でフィールドを編集する必要がありません。
そして、モックがフロントエンドの作業を解除した後、同じプロジェクトのテストシナリオはCIでヘッドレスで実行され、モックが記述したのと同じ契約に対して実際のバックエンドがチェックされます。これは単一のコマンドです。
apidog run -t <scenario_id> -e <env_id> -r html,cli
npm install -g apidog-cli(Node.js v16以降)でインストールし、apidog login --with-token <your-token>で認証すれば、これを任意のパイプラインに組み込むことができます。CI/CDパイプラインでApidogを実行する方法に関するガイドでは、設定方法を詳しく説明しています。モックはフロントエンドの作業を進め、CLIは同じ信頼できる情報源に対してバックエンドを正直に保ちます。
よくある質問
Smart Mockを使用するためにコードを書く必要がありますか? いいえ。エンドポイントに指定されたレスポンススキーマがある限り、Smart Mockは現実的なデータを自動的に生成します。特定のフィールドを上書きしたい場合にのみ、コード、Fakerステートメント、またはモックスクリプトを使用します。概念についてはモックAPIの概要をご覧ください。
モックURLが何も返さないのはなぜですか? 最も一般的な原因は、エンドポイントにレスポンス定義が欠けていることです。Smart Mockはレスポンススキーマを読み取るため、まずレスポンススキーマを追加してください。また、パスが/で始まっていること、そしてLocal Mockを使用している場合はApidogクライアントが開いていることを確認してください。
Smart Mockにランダムな値ではなく特定の値を返させるにはどうすればよいですか? プロパティのモックフィールド(Mock Field)を設定します。固定値(Fixed value)は常に同じものを返し、Fakerステートメントは多様だが制御されたデータを返します。モックフィールドはSmart Mockの3層優先順位の最上位に位置するため、名前マッチングやスキーマのデフォルトよりも常に優先されます。
チームメイトは私のラップトップで実行されているモックにアクセスできますか? Local Mockは127.0.0.1:4523でリッスンしているため、ローカルネットワーク上でのみ、Apidogクライアントが開いている間だけアクセスできます。常にアクセス可能にするには、デフォルトでオフになっているCloud Mockをオンにしてください。Cloud Mockはhttps://mock.apidog.comでホストされています。
例とSmart Mockの両方がある場合、どちらのレスポンスが優先されますか? デフォルトのモックメソッド(Default mock method)によります。Smart Mock Firstの場合、Smart Mockがボディを生成します。Response example firstの場合、Smart Mockの前にレスポンス例が使用されます。いずれの場合も、一致するモック期待(Mock Expectation)が両方を上書きします。
まとめ
Smart Mockは、APIスキーマをコードや設定なしに機能するモックに変換し、ブロックされたフロントエンドがまさに必要としているものです。レスポンスを定義し、APIタブまたはモックタブからモックURLをコピーして呼び出すだけです。推測を調整する必要がある場合は、スキーマを厳しくするか、モックフィールドを設定することを忘れず、モック期待が常に優先されることを覚えておいてください。Apidogをダウンロードして、この一文を読んでいる間に最初のエンドポイントをモックしてみましょう。
