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 Error
https://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: