Sdílet prostřednictvím


MockResponsePlugin

Simuluje odpovědi.

Snímek obrazovky příkazového řádku s vývojovým proxy simulujícím odpověď na požadavek na rozhraní API GitHubu

Definice instance modulu plug-in

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

Příklad konfigurace

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

Vlastnosti konfigurace

Vlastnost Popis Default
mocksFile Cesta k souboru obsahujícímu napodobené odpovědi mocks.json
blockUnmockedRequests Vrácení 502 Bad Gateway odpovědi na požadavky, které nejsou napodobeny false

Možnosti příkazového řádku

Název Description Default
-n, --no-mocks Zákaz načítání napodobených požadavků false
--mocks-file Cesta k souboru obsahujícímu napodobené odpovědi -

Příklady souborů napodobení

Následuje příklad napodobení objektů.

Odpovědět textem

Odpověď na požadavek s odpovědí 200 OK a textem JSON.

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

Odpověď s chybou

Odpověď na žádost s odpovědí 404 Nenalezena

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

Odpověď binárními daty

Odpověď na žádost pomocí binární image načtené ze souboru na disku

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

Odpovědět na nth žádost

Na žádost odpovíte až po druhém zavolání.

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

Odpověď odpovídající textu požadavku

Odpověď na požadavek, který obsahuje konkrétní řetězec v textu.

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

Vlastnosti souboru Napodobení

Vlastnost Popis Povinné
request Objekt požadavku , který definuje požadavek, na který má odpovědět ano
response Objekt Response , který definuje odpověď, která se má vrátit ano

Objekt požadavku

Každý požadavek má následující vlastnosti:

Vlastnost Popis Povinné Výchozí hodnota Ukázková hodnota
url Absolutní adresa URL koncového bodu rozhraní API pro odpověď na ano https://jsonplaceholder.typicode.com/posts
method Příkaz HTTP použitý k porovnávání požadavku s url ne GET GET
nth Určuje, že proxy server by měl reagovat až poté, co zachytává požadavek pro nth čas. ne 2
bodyFragment Řetězec, který by měl být v textu požadavku. ne foo

Poznámky

Pokud chcete shodovat řadu znaků v adrese URL, použijte ve url vlastnosti hvězdičku (*). Například shody https://jsonplaceholder.typicode.com/*https://jsonplaceholder.typicode.com/posts a https://jsonplaceholder.typicode.com/comments. Za běhu převede dev proxy každý z nich * na regulární výraz .*.

Při definování napodobení umístěte na první místo ty nejkoniférnější napodobení. Pokud máte například dvě napodobení, jednu pro https://jsonplaceholder.typicode.com/posts a druhou pro https://jsonplaceholder.typicode.com/*, umístěte první napodobení jako první. V opačném případě proxy pro vývoj nejprve odpovídá druhému napodobení a vrátí odpověď pro https://jsonplaceholder.typicode.com/* všechny požadavky.

Vlastnost použijte, nth pokud potřebujete odeslat jinou adresu URL stejné žádosti. Můžete ho například použít k simulaci dlouhotrvající operace. Při prvním volání rozhraní API se vrátí odpověď se zprávou inprogress . Při druhém volání rozhraní API se vrátí odpověď se zprávou completed . Další informace o vlastnosti najdete v nth tématu Napodobení nth požadavku.

Pomocí vlastnosti bodyFragment můžete spárovat požadavky na základě obsahu textu. Pokud například chcete spárovat požadavky, které obsahují foo řetězec v textu, nastavte bodyFragment vlastnost na foo. Dev Proxy používá bodyFragment pouze pro jiné požadavky než GET.

Objekt odpovědi

Každá odpověď má následující vlastnosti:

Vlastnost Popis Povinné Výchozí hodnota Ukázková hodnota
body Text, který se má odeslat jako odpověď na požadavek ne empty { "foo": "bar" }
statusCode Stavový kód HTTP odpovědi ne 200 404
headers Pole hlaviček, které se mají zahrnout do odpovědi ne empty [{ name: "content-type", "value": "application/json" }]

Poznámky

Pokud chcete vrátit binární data, nastavte body vlastnost na řetězcovou hodnotu, která začíná @ na následovanou cestou k souboru napodobení. @picture.jpg Například vrátí obrázek uložený v picture.jpg souboru ve stejném adresáři jako soubor napodobení.