Sdílet prostřednictvím


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 mocksnapodobené 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 Errorpří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: