Napodobení odpovědí
Pokud chcete definovat napodobení odpovědí, vytvořte v aktuálním pracovním adresáři soubor s názvem mocks.json
. Tento soubor umožňuje definovat konkrétní sadu napodobení pro každý projekt, se kterým pracujete. Soubor obsahuje objekt s polem obsahujícím mocks
napodobené objekty.
Tip
Místo ručního vytváření souboru napodobení můžete použít MockGeneratorPlugin
k vygenerování souboru napodobení na základě zachycených požadavků.
Následující konfigurace ukazuje dvě napodobené odpovědi pro načtení informací o aktuálním uživateli. Když požádáte o informace o aktuálním uživateli, proxy odpoví napodobenou odpovědí. Když požádáte o informace o fotografii uživatele, proxy vrátí stavový kód 404.
{
"$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
}
}
]
}
Priorita pořadí
Mocky se shodují v pořadí, ve kterém jsou definovány mocks.json
v souboru. Pokud definujete více odpovědí se stejnou adresou URL a metodou, použije se první odpovídající odpověď.
Když použijete následující konfiguraci, proxy odpoví na všechny GET
požadavky na https://graph.microsoft.com/v1.0/me/photo
server pomocí 500 Internal Server Error
příkazu .
{
"$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
}
}
]
}
Podpora zástupných znaků
Proxy podporuje použití zástupných znaků ve vlastnosti URL. Pomocí hvězdičky (*
) můžete porovnat libovolnou řadu znaků v adrese URL.
Když použijete následující konfiguraci, proxy odpoví na všechny požadavky na získání profilu libovolného uživatele se stejnou odpovědí.
{
"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"
}
}
}
Když použijete následující konfiguraci, proxy vrátí stejnou image z disku, když požádáte o získání binárního souboru fotky libovolného uživatele.
{
"request": {
"url": "https://graph.microsoft.com/v1.0/users/*/photo/$value"
},
"response": {
"body": "@picture.jpg",
"headers": [
{
"name": "content-type",
"value": "image/jpeg"
}
]
}
}
Pokud použijete následující konfiguraci, proxy vrátí stejnou odpověď, když požádáte o získání profilu aktuálního uživatele s libovolným parametrem řetězce dotazu.
{
"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"
}
}
},
Odpověď obsahem souboru
Pokud chcete, aby byl soubor napodobených napodobení přehledný a uspořádaný, můžete obsah odpovědi uložit do samostatného souboru a odkazovat na něj v souboru napodobení. Pokud chcete dát dev proxy pokyn, aby se načetl text odpovědi napodobeniny ze souboru, nastavte body
vlastnost na a @
potom cestu k souboru vzhledem k souboru napodobení.
Například následující napodobená konfigurace odpovědi dává vývojovému proxy serveru pokyn, aby reagoval na jakýkoli požadavek https://graph.microsoft.com/v1.0/me
s obsahem response.json
souboru, který se nachází ve stejné složce jako soubor napodobení.
{
"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"
}
]
}
}
Použití -token funguje @
s textovými a binárními soubory.
Podpora služby Microsoft Graph Batch
Dev Proxy podporuje napodobování odpovědí, které se odesílají v dávkových požadavcích do Microsoft Graphu.
Pro zahrnutí odpovědí na dávkové požadavky do napodobených souborů neexistují žádné zvláštní požadavky, ale pokud požadavek není spárován s napodobenou odpovědí, 502 Bad Gateway
vrátí se odpověď.
Žádost o podporu bez ukotvení
Dev Proxy podporuje vyvolání chyby, když proxy zachytí neuchycený požadavek. Schopnost selhat nespotřebované požadavky je užitečná k identifikaci požadavků, které jste v souboru napodobení zmeškali.
Pokud chcete tuto funkci povolit, přidejte a povolte blockUnmockedRequests
nastavení do konfigurační části MockResponsePlugin v souboru devproxyrc .
{
"mocksPlugin": {
"mocksFile": "mocks.json",
"blockUnmockedRequests": true
}
}
Když se zachytí neuchycený požadavek, 502 Bad Gateway
vrátí se odpověď.
Další krok
Přečtěte si další informace o MockResponsePlugin.
Ukázky
Projděte si také související ukázky dev proxy: