Mock機能
フロントエンド開発はよくバックエンドのAPIに依存しており、バックエンドAPIがなければ、フロントエンド作業を順調に開始することは難しくなります。Mock機能はこのような問題を解決するように設計されています。Mock機能を使用すると、フロントエンドとバックエンドの作業を並行して実行できます。バックエンドのAPIの準備が整う前に、フロントエンド開発者はMock機能を利用して、開発とデバッグ用の仮想データを生成できます。
1. Mock機能の概要
Mock機能は、APIまたはSchemaの定義、Mockルールの配置、およびMock 期待の配置に基づいて、仮想データを自動的に生成できます。Mock機能は、ユーザーのニーズに基づいて、APIを構築する柔軟性を提供します。
多くの場合、Apidogはデフォルトでユーザーフレンドリーなデータを生成できます。
Apidogは、設定なしで高効率で非常にユーザーフレンドリーなMockデータをどのように生成しますか?
- Apidogは、API 仕様書で定義したSchemaとデータタイプに基づいてMockツールを生成できます。
- Apidogには、フィールド名とフィールドデータタイプに基づいてMockルールを生成するスマートMockが内蔵されています。たとえば、String 型フィールドの名前に「image」が含まれている場合、Apidogはそれに応じて画像 URLを生成できます。String 型フィールドの名前に「time」が含まれている場合、Apidogはそれに応じて時間の文字列を生成できます。String 型フィールドの名前に「city」が含まれている場合、Apidogはそれに応じて都市名を生成できます。
- 内蔵のMockルールに基づいて、Apidogは、フィールド(例:画像、プロファイル写真、ユーザー名、電話番号、URL、日付、時間、タイムスタンプ、メール、県、都市、IPアドレスなど)を自動的に識別して、ユーザーフレンドリーな仮想データを生成できます。
- 内蔵のMockルールに加えて、ユーザーは独自のニーズに従ってルールをカスタマイズすることもできます。String 型フィールドが正規表現とワイルドカードを使用してマッチングすることをサポートしています。
次は設定なしでApidogによって生成されたMockデータの例:
ローカルとクラウド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:
- パス: http://127.0.0.1:3658/m1/{project_id}-{version_id}-{service_id}/{api_path}
- 例: http://127.0.0.1:3658/m1/18600-0-0/users/123
- ID: http://127.0.0.1:3658/m2/{project_id}-{version_id}-{service_id}/{api_path}
- 例: http://127.0.0.1:3658/m2/18600-0-0/84924
クラウドMock
- パス: https://mock.apidog.com/m1/{project_id}-{version_id}-{service_id}/{api_path}
- 例: https://mock.apidog.com/m1/18600-0-0/users/123
- ID: https://mock.apidog.com/m2/{project_id}-{version_id}-{service_id}/{api_path}
- 例: https://mock.apidog.com/m2/18600-0-0/84924
その他の説明:
- プロジェクトID:プロジェクトの設定ページで確認できます。
- バージョンID: デフォルトのバージョンIDが0. 0で、メインバージョンを意味します。(現在、Apidogのマルチバージョン機能がただいま開発中なので、バージョンIDを0として記入してください)
- サービスID: プロジェクトに複数のサービスがある場合にのみ、サービスIDを指定する必要があります。それ以外の場合は、デフォルトサービスを使用します。
- Mockサービスがローカルで実行される場合、URLのIPアドレスは127.0.0.1です。他のマシンからMockデータにアクセスする必要がある場合は、127.0.0.1をイントラネットIPアドレスに変更すればアクセスできます。それでもアクセスできない場合は、ファイアウォールがMockポートの3658をブロックしているかどうかを確認してください。
- 同じ通信方式とパスを持っている複数のAPIがある場合は、次のいずれかの方法を使用してAPIを指定してください。そうでなければ、パスの衝突が生じるかもしれません。
- API Pathモード:他のQueryパラメータを追加する。 ( ?apidogApiId={api_id}).
- API IDモード: 他のセットアップが必要としない。
- APIパスが/で始まらない場合、API Pathモードは使用できません。その代わりにAPI IDモードを使用してください。
- Mockサービスはデフォルトでオンにされていますので、他のセットアップを必要としていません。
- Mockサービスの プリフィックスURLを手動で変更できません。
以前バージョンでのMock機能
ただいままだ互換できますが、将来のバージョンで削除する予定があります。
- パス: http://127.0.0.1:3658/mock/{project_id}/{api_path}
- 例: http://127.0.0.1:3658/mock/18600/users/123
- ID: http://127.0.0.1:3658/mock2/{project_id}/{api_path}
- 例:http://127.0.0.1:3658/mock2/18600/84924
APIのMock URLを取得
ApidogのAPIの詳細ページで当該 Mock URLを見つけます。
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ルールの優先順位は下記のように設定されています。
- 高度なMockでの期待(APIのパラメータに基づく)
- データ構造(Schema)中に設定されるMockルール
- データフィールドの詳細設定の最大値、最小値、列挙値、Partten 値
- プロジェクト設定で定義されたカスタムマッチングルール - スマートMock
- プロジェクト設定での内蔵マッチングルール - スマートMock
- Schema(データ構造)中のデータタイプ
5. 他の情報
- システムはデフォルトでAPI 定義書での最初のResponseのデータ構造をMockします。他のResponseをMockしたい場合は、API 詳細ページのMockモジュールで他のResponseのMock URLを取得できます。