Delen via


MockResponsePlugin

Simuleert antwoorden.

Schermopname van een opdrachtprompt met Dev Proxy die het antwoord simuleert voor een aanvraag naar de GitHub-API.

Definitie van invoegtoepassingsexemplaren

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

Configuratievoorbeeld

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

Configuratie-eigenschappen

Eigenschap Beschrijving Standaard
mocksFile Pad naar het bestand met gesimuleerde antwoorden mocks.json
blockUnmockedRequests Antwoord retourneren 502 Bad Gateway voor aanvragen die niet worden gesimuleerd false

Opdrachtregelopties

Naam Beschrijving Standaard
-n, --no-mocks Het laden van mock-aanvragen uitschakelen false
--mocks-file Pad naar het bestand met gesimuleerde antwoorden -

Voorbeelden van mocks-bestanden

Hieronder volgen voorbeelden van gesimuleerde objecten.

Reageren met hoofdtekst

Antwoord op een aanvraag met een 200 OK-antwoord en een JSON-hoofdtekst.

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

Reageren met fout

Reageren op een aanvraag met het antwoord 404 Niet gevonden.

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

Reageren met binaire gegevens

Reageren op een aanvraag met een binaire installatiekopieën die zijn geladen vanuit een bestand op schijf.

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

Reageren op nth aanvraag

Reageer pas op een aanvraag nadat deze voor de tweede keer wordt aangeroepen.

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

Reageren op de hoofdtekst van de aanvraag

Reageren op een aanvraag die een specifieke tekenreeks in de hoofdtekst bevat.

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

Bestandseigenschappen nabootsen

Eigenschap Beschrijving Vereist
request Aanvraagobject dat de aanvraag definieert om op te reageren ja
response Antwoordobject dat het antwoord definieert dat moet worden geretourneerd ja

Aanvraagobject

Elke aanvraag heeft de volgende eigenschappen:

Eigenschap Beschrijving Vereist Standaardwaarde Voorbeeldwaarde
url Absolute URL naar een API-eindpunt om op te reageren ja https://jsonplaceholder.typicode.com/posts
method HTTP-woord dat wordt gebruikt om de aanvraag te vergelijken met url nee GET GET
nth Bepaalt dat de proxy pas daarna moet reageren bij het onderscheppen van de aanvraag voor de volgende keer nee 2
bodyFragment Een tekenreeks die aanwezig moet zijn in de aanvraagbody nee foo

Opmerkingen

Gebruik een sterretje (*) in de url eigenschap als u een reeks tekens in de URL wilt vergelijken. Komt bijvoorbeeld https://jsonplaceholder.typicode.com/* overeen met https://jsonplaceholder.typicode.com/posts en https://jsonplaceholder.typicode.com/comments. Tijdens runtime converteert Dev Proxy elk * naar een reguliere expressie .*.

Plaats bij het definiëren van mocks eerst de meest specifieke mocks. Als u bijvoorbeeld twee mocks hebt, één voor https://jsonplaceholder.typicode.com/posts en één voor https://jsonplaceholder.typicode.com/*, plaatst u de eerste mock eerst. Anders komt Dev Proxy eerst overeen met de tweede mock en retourneert het antwoord voor https://jsonplaceholder.typicode.com/* voor alle aanvragen.

Gebruik de nth eigenschap als u een andere aanvraag-URL wilt verzenden. Gebruik het bijvoorbeeld om een langlopende bewerking te simuleren. De eerste keer dat u de API aanroept, wordt er een antwoord met een inprogress bericht geretourneerd. De tweede keer dat u de API aanroept, wordt er een antwoord met het completed bericht geretourneerd. Zie Mock nth-aanvraag voor meer informatie over nth de eigenschap.

Met behulp van de bodyFragment eigenschap kunt u aanvragen vergelijken op basis van de hoofdtekstinhoud. Als u bijvoorbeeld aanvragen wilt vergelijken die de foo tekenreeks in de hoofdtekst bevatten, stelt u de bodyFragment eigenschap in op foo. Dev Proxy gebruikt bodyFragment alleen voor andere aanvragen dan GET.

Responsobject

Elk antwoord heeft de volgende eigenschappen:

Eigenschap Beschrijving Vereist Standaardwaarde Voorbeeldwaarde
body Hoofdtekst die moet worden verzonden als antwoord op de aanvraag nee leeg { "foo": "bar" }
statusCode HTTP-statuscode voor antwoord nee 200 404
headers Matrix van headers die moeten worden opgenomen in het antwoord nee leeg [{ name: "content-type", "value": "application/json" }]

Opmerkingen

Als u binaire gegevens wilt retourneren, stelt u de body eigenschap in op een tekenreekswaarde die begint met @ gevolgd door het bestandspad ten opzichte van het mocks-bestand. Retourneert bijvoorbeeld @picture.jpg de afbeelding die is opgeslagen in het picture.jpg bestand in dezelfde map als het mocks-bestand.