Freigeben über


MockResponsePlugin

Simuliert Antworten.

Screenshot: Eingabeaufforderung mit Dev Proxy, der die Antwort für eine Anforderung an die GitHub-API simuliert.

Plug-In-instance Definition

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

Konfigurationsbeispiel

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

Konfigurationseigenschaften

Eigenschaft BESCHREIBUNG Standard
mocksFile Pfad zur Datei mit Pseudoantworten mocks.json
blockUnmockedRequests Zurückgeben der 502 Bad Gateway Antwort für Anforderungen, die nicht simuliert werden false

Befehlszeilenoptionen

Name BESCHREIBUNG Standard
-n, --no-mocks Deaktivieren des Ladens von Pseudoanforderungen false
--mocks-file Pfad zur Datei mit Pseudoantworten -

Beispiele für Mocks-Dateien

Im Folgenden sind Beispiele für Mock-Objekte aufgeführt.

Antworten mit Text

Antwort auf eine Anforderung mit einer Antwort von 200 OK und einem JSON-Text.

{
  "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"
      }
    ]
  }
}

Antworten mit Fehler

Antworten Sie auf eine Anforderung mit einer 404 Not Found-Antwort.

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

Antworten mit Binärdaten

Antworten Sie auf eine Anforderung mit einem binären Image, das aus einer Datei auf dem Datenträger geladen wurde.

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

Antworten auf nth Anfrage

Antworten Sie auf eine Anforderung erst nach dem zweiten Aufruf.

{
  "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
    }
  }
}

Antworten, die dem Anforderungstext entsprechen

Antworten Sie auf eine Anforderung, die eine bestimmte Zeichenfolge im Text enthält.

{
  "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..."
    }
  }
}

Simuliert Dateieigenschaften

Eigenschaft BESCHREIBUNG Erforderlich
request Anforderungsobjekt , das die Anforderung definiert, auf die beantwortet werden soll ja
response Antwortobjekt , das die zurückzugebende Antwort definiert ja

Anforderungsobjekt

Jede Anforderung weist die folgenden Eigenschaften auf:

Eigenschaft BESCHREIBUNG Erforderlich Standardwert Beispielwert
url Absolute URL zu einem API-Endpunkt, auf den reagiert werden soll ja https://jsonplaceholder.typicode.com/posts
method HTTP-Verb zum Abgleichen der Anforderung mit url nein GET GET
nth Bestimmt, dass der Proxy erst nach dem Abfangen der Anforderung zum n-ten Mal reagieren soll. nein 2
bodyFragment Eine Zeichenfolge, die im Anforderungstext vorhanden sein sollte nein foo

Hinweise

Verwenden Sie ein Sternchen (*) in der url -Eigenschaft, wenn Sie eine beliebige Zeichenreihe in der URL übereinstimmen möchten. Beispielsweise entspricht https://jsonplaceholder.typicode.com/*https://jsonplaceholder.typicode.com/posts und https://jsonplaceholder.typicode.com/comments. Zur Laufzeit konvertiert der Dev-Proxy jeden * in einen regulären Ausdruck .*.

Platzieren Sie beim Definieren von Mocks zuerst die spezifischsten Mocks. Wenn Sie z. B. über zwei Mocks verfügen, eines für https://jsonplaceholder.typicode.com/posts und eines für https://jsonplaceholder.typicode.com/*, platzieren Sie den ersten Mock zuerst. Andernfalls stimmt der Dev-Proxy zuerst mit dem zweiten Mock überein und gibt die Antwort für https://jsonplaceholder.typicode.com/* für alle Anforderungen zurück.

Verwenden Sie die nth -Eigenschaft, wenn Sie eine andere an dieselbe Anforderungs-URL senden müssen. Verwenden Sie sie beispielsweise, um einen Vorgang mit langer Ausführungsdauer zu simulieren. Wenn Sie die API zum ersten Mal aufrufen, wird eine Antwort mit einer inprogress Nachricht zurückgegeben. Beim zweiten Aufruf der API wird eine Antwort mit der completed Nachricht zurückgegeben. Weitere Informationen zur nth Eigenschaft finden Sie unter Mock nth Request.

Mithilfe der bodyFragment -Eigenschaft können Sie Anforderungen basierend auf dem Textinhalt abgleichen. Wenn Sie beispielsweise Anforderungen abgleichen möchten, die die foo Zeichenfolge im Text enthalten, legen Sie die bodyFragment -Eigenschaft auf fest foo. Der Dev Proxy wird nur für andere Anforderungen als GETverwendetbodyFragment.

Antwortobjekt

Jede Antwort weist die folgenden Eigenschaften auf:

Eigenschaft BESCHREIBUNG Erforderlich Standardwert Beispielwert
body Text, der als Antwort auf die Anforderung gesendet werden soll nein empty { "foo": "bar" }
statusCode Antwort-HTTP-status-Code nein 200 404
headers Array von Headern, die in die Antwort eingeschlossen werden sollen nein empty [{ name: "content-type", "value": "application/json" }]

Hinweise

Wenn Sie Binärdaten zurückgeben möchten, legen Sie die body Eigenschaft auf einen Zeichenfolgenwert fest, der mit @ beginnt, gefolgt vom Dateipfad relativ zur Mocks-Datei. Gibt beispielsweise @picture.jpg das in der picture.jpg Datei gespeicherte Image im selben Verzeichnis wie die Mocks-Datei zurück.