MockResponsePlugin
Simuleert antwoorden.
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.