次の方法で共有


MockResponsePlugin

応答をシミュレートします。

GitHub API への要求に対する応答をシミュレートする開発プロキシを含むコマンド プロンプトのスクリーンショット。

プラグイン インスタンスの定義

{
  "name": "MockResponsePlugin",
  "enabled": true,
  "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
  "configSection": "mocksPlugin"
}

構成の例

{
  "mocksPlugin": {
    "mocksFile": "mocks.json"
  }
}

構成プロパティ

プロパティ 説明 Default
mocksFile モック応答を含むファイルへのパス mocks.json
blockUnmockedRequests モックされていない要求に対する応答を返す502 Bad Gateway false

コマンド ライン オプション

名前 説明 Default
-n, --no-mocks モック要求の読み込みを無効にする false
--mocks-file モック応答を含むファイルへのパス -

モック ファイルの例

モック オブジェクトの例を次に示します。

本文で応答する

200 OK 応答と JSON 本文を含む要求への応答。

{
  "request": {
    "url": "https://graph.microsoft.com/v1.0/me",
    "method": "GET"
  },
  "response": {
    "body": {
      "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity",
      "businessPhones": ["+1 412 555 0109"],
      "displayName": "Megan Bowen",
      "givenName": "Megan",
      "jobTitle": "Auditor",
      "mail": "MeganB@M365x214355.onmicrosoft.com",
      "mobilePhone": null,
      "officeLocation": "12/1110",
      "preferredLanguage": "en-US",
      "surname": "Bowen",
      "userPrincipalName": "MeganB@M365x214355.onmicrosoft.com",
      "id": "48d31887-5fad-4d73-a9f5-3c356e68a038"
    },
    "headers": [
      {
        "name": "content-type",
        "value": "application/json; odata.metadata=minimal"
      }
    ]
  }
}

エラーで応答する

404 Not Found 応答で要求に応答します。

{
  "request": {
    "url": "https://graph.microsoft.com/v1.0/me/photo",
    "method": "GET"
  },
  "response": {
    "statusCode": 404
  }
}

バイナリ データで応答する

ディスク上のファイルから読み込まれたバイナリ イメージを使用して要求に応答します。

{
  "request": {
    "url": "https://graph.microsoft.com/v1.0/users/*/photo/$value",
    "method": "GET"
  },
  "response": {
    "body": "@picture.jpg",
    "headers": [
      {
        "name": "content-type",
        "value": "image/jpeg"
      }
    ]
  }
}

要求に応じて応答するnth

2 回目に呼び出された後にのみ、要求に応答します。

{
  "request": {
    "url": "https://graph.microsoft.com/v1.0/external/connections/*/operations/*",
    "method": "GET",
    "nth": 2
  },
  "response": {
    "statusCode": 200,
    "body": {
      "id": "1.neu.0278337E599FC8DBF5607ED12CF463E4.6410CCF8F6DB8758539FB58EB56BF8DC",
      "status": "completed",
      "error": null
    }
  }
}

要求本文に一致する応答

本文に特定の文字列を含む要求に応答します。

{
  "request": {
    "url": "https://login.microsoftonline.com/fa15d692-e9c7-4460-a743-29f29522229/oauth2/v2.0/token",
    "method": "POST",
    "bodyFragment": "scope=https%3A%2F%2Fapi.contoso.com%2FDocuments.Read"
  },
  "response": {
    "headers": [
      {
        "name": "Content-Type",
        "value": "application/json; charset=utf-8"
      }
    ],
    "body": {
      "token_type": "Bearer",
      "expires_in": 3599,
      "ext_expires_in": 3599,
      "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSU..."
    }
  }
}

モック ファイルのプロパティ

プロパティ 説明 必須
request 応答する要求を定義する Request オブジェクト はい
response 返す応答 を定義する Response オブジェクト はい

要求オブジェクト

各要求には、次のプロパティがあります。

プロパティ 説明 必須 既定値 値の例
url 応答する API エンドポイントへの絶対 URL はい https://jsonplaceholder.typicode.com/posts
method 要求と一致するために使用される HTTP 動詞 url no GET GET
nth n 回目の要求をインターセプトした後にのみプロキシが応答することを決定します no 2
bodyFragment 要求本文に存在する文字列 no foo

注釈

URL 内の任意の一連のurl文字と一致させる場合は、 プロパティでアスタリスク (*) を使用します。 たとえば、https://jsonplaceholder.typicode.com/*https://jsonplaceholder.typicode.com/posts および https://jsonplaceholder.typicode.com/comments と一致します。 実行時に、開発プロキシは、それぞれ * を正規表現 に変換します .*

モックを定義するときは、最も具体的なモックを最初に配置します。 たとえば、 用と https://jsonplaceholder.typicode.com/*https://jsonplaceholder.typicode.com/postsの 2 つのモックがある場合は、最初のモックを最初に配置します。 それ以外の場合、開発プロキシは最初に 2 番目のモックと一致し、すべての要求に対する https://jsonplaceholder.typicode.com/* 応答を返します。

nth同じ要求 URL に別のを送信する必要がある場合は、 プロパティを使用します。 たとえば、実行時間の長い操作をシミュレートするために使用します。 API を初めて呼び出すと、メッセージを含む応答が inprogress 返されます。 2 回目に API を呼び出すと、メッセージを含む応答が completed 返されます。 プロパティの詳細については、「モック n 番目nth要求」を参照してください。

プロパティを bodyFragment 使用すると、本文の内容に基づいて要求を照合できます。 たとえば、本文に文字列を含む foo 要求を照合する場合は、 プロパティを bodyFragmentfoo設定します。 開発プロキシでは、 以外GETの要求にのみ が使用bodyFragmentされます。

応答オブジェクト

各応答には、次のプロパティがあります。

プロパティ 説明 必須 既定値 値の例
body 要求への応答として送信する本文 no empty { "foo": "bar" }
statusCode 応答 HTTP 状態コード no 200 404
headers 応答に含めるヘッダーの配列 no empty [{ name: "content-type", "value": "application/json" }]

注釈

バイナリ データを返す場合は、 プロパティを body 、モック ファイルに対する相対ファイル パスで @ 始まる文字列値に設定します。 たとえば、 は、 @picture.jpg モック ファイルと同じディレクトリにある picture.jpg ファイルに格納されているイメージを返します。