メインコンテンツまでスキップ

Mock機能

フロントエンド開発はよくバックエンドのAPIに依存しており、バックエンドAPIがなければ、フロントエンド作業を順調に開始することは難しくなります。Mock機能はこのような問題を解決するように設計されています。Mock機能を使用すると、フロントエンドとバックエンドの作業を並行して実行できます。バックエンドのAPIの準備が整う前に、フロントエンド開発者はMock機能を利用して、開発とデバッグ用の仮想データを生成できます。

1. Mock機能の概要

Mock機能は、APIまたはSchemaの定義、Mockルールの配置、およびMock 期待の配置に基づいて、仮想データを自動的に生成できます。Mock機能は、ユーザーのニーズに基づいて、APIを構築する柔軟性を提供します。

多くの場合、Apidogはデフォルトでユーザーフレンドリーなデータを生成できます。

Apidogは、設定なしで高効率で非常にユーザーフレンドリーなMockデータをどのように生成しますか?

  1. Apidogは、API 仕様書で定義したSchemaとデータタイプに基づいてMockツールを生成できます。
  2. Apidogには、フィールド名とフィールドデータタイプに基づいてMockルールを生成するスマートMockが内蔵されています。たとえば、String 型フィールドの名前に「image」が含まれている場合、Apidogはそれに応じて画像 URLを生成できます。String 型フィールドの名前に「time」が含まれている場合、Apidogはそれに応じて時間の文字列を生成できます。String 型フィールドの名前に「city」が含まれている場合、Apidogはそれに応じて都市名を生成できます。
  3. 内蔵のMockルールに基づいて、Apidogは、フィールド(例:画像、プロファイル写真、ユーザー名、電話番号、URL、日付、時間、タイムスタンプ、メール、県、都市、IPアドレスなど)を自動的に識別して、ユーザーフレンドリーな仮想データを生成できます。
  4. 内蔵のMockルールに加えて、ユーザーは独自のニーズに従ってルールをカスタマイズすることもできます。String 型フィールドが正規表現とワイルドカードを使用してマッチングすることをサポートしています。

次は設定なしでApidogによって生成されたMockデータの例:

adada

ローカルとクラウドMockサービスの相違点

Apidogのデスクトップアプリを使用する場合、ローカルMockサービスを利用できます。

Apidogのブラウザアプリを使用する場合、クラウドMockサービスを利用できます。

2.Request URLのMock

Requestの通信方式がAPI 仕様書で定義されたものに一致にする必要があります。

プロジェクトIDが18600で、Mockする必要があるAPIのIDが89343で、パスが/user/123で、Requestの通信方式がPOSTである場合、Mock URLが次のようになります:

// Local Mock Address
POST http://127.0.0.1:3658/m1/18600-0-default/users/123
or
POST http://127.0.0.1:3658/m2/18600-0-default/89343

// Cloud Mock Address
POST https://mock.apidog.com/m1/18600-0-default/users/123
or
POST https://mock.apidog.com/m2/18600-0-default/89343

APIとSchemaを定義した後、なんの手動設定が必要となく、上記のURLを開くことでMockデータのAPIにアクセスすることができます。

Mock URL

ローカルMock:

クラウドMock

その他の説明:

  • プロジェクトID:プロジェクトの設定ページで確認できます。
  • バージョンID: デフォルトのバージョンIDが0. 0で、メインバージョンを意味します。(現在、Apidogのマルチバージョン機能がただいま開発中なので、バージョンIDを0として記入してください)
  • サービスID: プロジェクトに複数のサービスがある場合にのみ、サービスIDを指定する必要があります。それ以外の場合は、デフォルトサービスを使用します。
次のことにご注意:
  1. Mockサービスがローカルで実行される場合、URLのIPアドレスは127.0.0.1です。他のマシンからMockデータにアクセスする必要がある場合は、127.0.0.1をイントラネットIPアドレスに変更すればアクセスできます。それでもアクセスできない場合は、ファイアウォールがMockポートの3658をブロックしているかどうかを確認してください。
  2. 同じ通信方式とパスを持っている複数のAPIがある場合は、次のいずれかの方法を使用してAPIを指定してください。そうでなければ、パスの衝突が生じるかもしれません。
    1. API Pathモード:他のQueryパラメータを追加する。 ( ?apidogApiId={api_id}).
    2. API IDモード: 他のセットアップが必要としない。
  3. APIパスが/で始まらない場合、API Pathモードは使用できません。その代わりにAPI IDモードを使用してください。
  4. Mockサービスはデフォルトでオンにされていますので、他のセットアップを必要としていません。
  5. Mockサービスの プリフィックスURLを手動で変更できません。

以前バージョンでのMock機能

ただいままだ互換できますが、将来のバージョンで削除する予定があります。

APIのMock URLを取得

ApidogのAPIの詳細ページで当該 Mock URLを見つけます。

apidog

3. Mockのカスタムルール

Apidogは、様々なビジネス要件を満たすために、Mockのカスタムルールをサポートします。

1. Schemaの定義でMockルールを設定

Schema(データ構造)を定義するときに、手動でMockルールを設定できます。faker.js Data Placeholder Definition (DPD)をサポートしています。faker.jsの詳細はこちらをご覧ください。

2. データフィールドの詳細設定

また、データフィールドの詳細設定で設定された最大値、最小値、列挙値、Partten 値、Formatを使用することもできます。

3. 高度なMock

高度なMockは最も柔軟性のあるMock 対策です。カスタムSchema (APIのSchemaに制限されない)を使用できますし、異なるRequestのパラメータによって異なるデータを返すこともできます。

4. スマートMock

返されたResponse(またはSchema)のフィールドにMockルールを配置していない場合、システムは手動設定なしで現実的なMockデータを自動的に生成します。スマートMockの詳細はこちらをご覧ください。

4. Mockルールの優先順位

Mockルールの優先順位は下記のように設定されています。

  1. 高度なMockでの期待(APIのパラメータに基づく)
  2. データ構造(Schema)中に設定されるMockルール
  3. データフィールドの詳細設定の最大値、最小値、列挙値、Partten 値
  4. プロジェクト設定で定義されたカスタムマッチングルール - スマートMock
  5. プロジェクト設定での内蔵マッチングルール - スマートMock
  6. Schema(データ構造)中のデータタイプ

5. 他の情報

  1. システムはデフォルトでAPI 定義書での最初のResponseのデータ構造をMockします。他のResponseをMockしたい場合は、API 詳細ページのMockモジュールで他のResponseのMock URLを取得できます。