Freigeben über


Simulierte Antworten

Um Pseudoantworten zu definieren, erstellen Sie eine Datei mit dem Namen mocks.json im aktuellen Arbeitsverzeichnis. Mit dieser Datei können Sie einen bestimmten Satz von Mocks für jedes Projekt definieren, mit dem Sie arbeiten. Die Datei enthält ein Objekt mit einem mocks Array, das Mockobjekte enthält.

Tipp

Anstatt die Mocks-Datei manuell zu erstellen, können Sie die MockGeneratorPlugin Mocks-Datei basierend auf den abgefangenen Anforderungen generieren.

Die folgende Konfiguration veranschaulicht zwei Pseudoantworten zum Abrufen von Informationen über den aktuellen Benutzer. Wenn Sie Informationen zum aktuellen Benutzer anfordern, antwortet der Proxy mit einer Mockantwort. Wenn Sie die Informationen zum Foto des Benutzers anfordern, gibt der Proxy den Code 404 status zurück.

{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.14.1/mockresponseplugin.schema.json",
  "mocks": [
    {
      "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"
          }
        ]
      }
    },
    {
      "request": {
        "url": "https://graph.microsoft.com/v1.0/me/photo",
        "method": "GET"
      },
      "response": {
        "statusCode": 404
      }
    }
  ]
}

Rangfolge der Bestellung

Mocks werden in der Reihenfolge abgeglichen, in der sie in der mocks.json Datei definiert sind. Wenn Sie mehrere Antworten mit derselben URL und Methode definieren, wird die erste übereinstimmende Antwort verwendet.

Wenn Sie die folgende Konfiguration verwenden, antwortet der Proxy auf alle GET Anforderungen mit 500 Internal Server Errorhttps://graph.microsoft.com/v1.0/me/photo .

{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.14.1/mockresponseplugin.schema.json",
  "mocks": [
    {
      "request": {
        "url": "https://graph.microsoft.com/v1.0/me/photo",
        "method": "GET"
      },
      "response": {
        "statusCode": 500
      }
    },
    {
      "request": {
        "url": "https://graph.microsoft.com/v1.0/me/photo",
        "method": "GET"
      },
      "response": {
        "statusCode": 404
      }
    }
  ]
}

Unterstützung von Wildcards

Der Proxy unterstützt die Verwendung von Platzhaltern in der URL-Eigenschaft. Sie können das Sternchen (*) verwenden, um eine beliebige Reihe von Zeichen in der URL zuzuordnen.

Wenn Sie die folgende Konfiguration verwenden, antwortet der Proxy auf alle Anforderungen, um das Profil eines beliebigen Benutzers mit derselben Antwort abzurufen.

{
  "request": {
    "url": "https://graph.microsoft.com/v1.0/users/*"
  },
  "response": {
    "body": {
      "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity",
      "businessPhones": ["+1 425 555 0109"],
      "displayName": "Adele Vance",
      "givenName": "Adele",
      "jobTitle": "Product Marketing Manager",
      "mail": "AdeleV@M365x214355.onmicrosoft.com",
      "mobilePhone": null,
      "officeLocation": "18/2111",
      "preferredLanguage": "en-US",
      "surname": "Vance",
      "userPrincipalName": "AdeleV@M365x214355.onmicrosoft.com",
      "id": "87d349ed-44d7-43e1-9a83-5f2406dee5bd"
    }
  }
}

Wenn Sie die folgende Konfiguration verwenden, gibt der Proxy dasselbe Image vom Datenträger zurück, wenn Sie die Binärdatei eines Beliebigen Benutzerfotos anfordern.

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

Wenn Sie die folgende Konfiguration verwenden, gibt der Proxy dieselbe Antwort zurück, wenn Sie anfordern, das Profil des aktuellen Benutzers mit einem beliebigen Abfragezeichenfolgenparameter abzurufen.

{
  "request": {
    "url": "https://graph.microsoft.com/v1.0/me?*"
  },
  "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"
    }
  }
},

Antworten mit Inhalten einer Datei

Damit Ihre Mocks-Datei sauber und organisiert bleibt, können Sie den Inhalt der Antwort in einer separaten Datei speichern und in der Mocks-Datei darauf verweisen. Legen Sie zum Anweisen des Dev-Proxys zum Laden des Pseudoantworttexts aus einer Datei die body Eigenschaft auf @ gefolgt vom Dateipfad relativ zur Mocks-Datei fest.

Die folgende Konfiguration der Pseudoantwort weist den Dev-Proxy beispielsweise an, auf jede Anforderung zu antworten, https://graph.microsoft.com/v1.0/me wobei sich der Inhalt der response.json Datei im selben Ordner wie die Mocks-Datei befindet.

{
  "request": {
    "url": "https://graph.microsoft.com/v1.0/me",
    "method": "GET"
  },
  "response": {
    "body": "@response.json",
    "headers": [
      {
        "name": "content-type",
        "value": "application/json; odata.metadata=minimal"
      }
    ]
  }
}

Die Verwendung des @-Token funktioniert mit Text - und Binärdateien.

Microsoft Graph Batch-Unterstützung

Der Dev-Proxy unterstützt das Simulieren von Antworten, die in Batchanforderungen an Microsoft Graph gesendet werden.

Es gibt keine besonderen Anforderungen für das Einschließen von Antworten auf Batchanforderungen in Ihre Mockdateien. Wenn eine Anforderung jedoch nicht mit einer simulierten Antwort abgeglichen wird, wird eine 502 Bad Gateway Antwort zurückgegeben.

Support für nicht abgekoppelte Anforderungen

Der Dev-Proxy unterstützt das Auslösen eines Fehlers, wenn der Proxy eine nicht abgefangene Anforderung abfängt. Die Möglichkeit, nicht abgedockte Anforderungen zu schlagen, ist nützlich, um Anforderungen zu identifizieren, die Sie in Ihrer Mocks-Datei verpasst haben.

Um dieses Feature zu aktivieren, fügen Sie die blockUnmockedRequests Einstellung zum Konfigurationsabschnitt MockResponsePlugin in der Devproxyrc-Datei hinzu, und aktivieren Sie sie.

{
  "mocksPlugin": {
    "mocksFile": "mocks.json",
    "blockUnmockedRequests": true
  }
}

Wenn eine nicht abgefangene Anforderung abgefangen wird, wird eine 502 Bad Gateway Antwort zurückgegeben.

Nächster Schritt

Weitere Informationen zum MockResponsePlugin.

Beispiele

Siehe auch die entsprechenden Dev Proxy-Beispiele: