Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Hiermee worden antwoorden gesimuleerd.
Configuratievoorbeeld
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rc.schema.json",
"plugins": [
{
"name": "MockResponsePlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "mocksPlugin"
}
],
"mocksPlugin": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/mockresponseplugin.schema.json",
"mocksFile": "mocks.json"
}
}
Configuratie-eigenschappen
| Vastgoed | Beschrijving | Verstek |
|---|---|---|
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 | Verstek |
|---|---|---|
-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 mock-objecten.
Reageren met hoofdtekst
Antwoord op een aanvraag met een 200 OK-antwoord en een JSON-hoofdtekst.
Bestand: mocks.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/mockresponseplugin.mocksfile.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"
}
]
}
}
]
}
Reageren met fout
Reageer op een aanvraag met een antwoord van 404 Niet gevonden.
Bestand: mocks.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/mockresponseplugin.mocksfile.schema.json",
"mocks": [
{
"request": {
"url": "https://graph.microsoft.com/v1.0/me/photo",
"method": "GET"
},
"response": {
"statusCode": 404
}
}
]
}
Reageren met binaire gegevens
Reageer op een aanvraag met een binaire installatiekopieën die zijn geladen vanuit een bestand op schijf.
Bestand: mocks.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/mockresponseplugin.mocksfile.schema.json",
"mocks": [
{
"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 alleen op de tweede overeenkomende aanvraag. Dev Proxy geeft andere aanvragen door aan de API.
Bestand: mocks.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/mockresponseplugin.mocksfile.schema.json",
"mocks": [
{
"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 die overeenkomt met de hoofdtekst van de aanvraag
Reageer op een aanvraag die een specifieke tekenreeks in de hoofdtekst bevat.
Bestand: mocks.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/mockresponseplugin.mocksfile.schema.json",
"mocks": [
{
"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..."
}
}
}
]
}
Gespiegelde aanvraaggegevens in reactie
Reageer met gegevens die waarden uit de aanvraagbody spiegelen met behulp van @request.body.* tijdelijke aanduidingen.
Bestand: mocks.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/mockresponseplugin.mocksfile.schema.json",
"mocks": [
{
"request": {
"url": "https://graph.microsoft.com/v1.0/users",
"method": "POST"
},
"response": {
"statusCode": 201,
"body": {
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity",
"id": "12345678-1234-1234-1234-123456789abc",
"businessPhones": "@request.body.businessPhones",
"displayName": "@request.body.displayName",
"givenName": "@request.body.givenName",
"jobTitle": "@request.body.jobTitle",
"mail": "@request.body.mail",
"userPrincipalName": "@request.body.userPrincipalName",
"accountEnabled": "@request.body.accountEnabled",
"createdDateTime": "2024-01-15T10:30:00Z"
},
"headers": [
{
"name": "Content-Type",
"value": "application/json; odata.metadata=minimal"
},
{
"name": "Location",
"value": "https://graph.microsoft.com/v1.0/users/12345678-1234-1234-1234-123456789abc"
}
]
}
}
]
}
Gezien de volgende aanvraag:
POST https://graph.microsoft.com/v1.0/users
Content-Type: application/json
{
"displayName": "Megan Bowen",
"userPrincipalName": "MeganB@M365x214355.onmicrosoft.com",
"accountEnabled": true,
"givenName": "Megan",
"surname": "Bowen",
"jobTitle": "Product Manager"
}
Het antwoord is:
HTTP/1.1 200 Connection Established
Content-Length: 0
HTTP/1.1 201 Created
Cache-Control: no-store
x-ms-ags-diagnostic:
Strict-Transport-Security:
request-id: 12345678-1234-1234-1234-123456789abc
client-request-id: 12345678-1234-1234-1234-123456789abc
Date: 9/10/2025 10:28:35 AM
Content-Type: application/json; odata.metadata=minimal
Location: https://graph.microsoft.com/v1.0/users/12345678-1234-1234-1234-123456789abc
OData-Version: 4.0
Content-Length: 648
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity",
"id": "12345678-1234-1234-1234-123456789abc",
"businessPhones": null,
"displayName": "Megan Bowen",
"givenName": "Megan",
"jobTitle": "Product Manager",
"mail": null,
"mobilePhone": null,
"officeLocation": null,
"preferredLanguage": null,
"surname": "Bowen",
"userPrincipalName": "MeganB@M365x214355.onmicrosoft.com",
"accountEnabled": true,
"createdDateTime": "2024-01-15T10:30:00Z",
"department": null,
"companyName": null,
"city": null,
"country": null,
"postalCode": null,
"state": null,
"streetAddress": null,
"usageLocation": null
}
Eigenschappen van mocks-bestanden
| Vastgoed | Beschrijving | Verplicht |
|---|---|---|
request |
Aanvraagobject waarmee de aanvraag wordt gedefinieerd waarop moet worden gereageerd | ja |
response |
Antwoordobject dat het antwoord definieert dat moet worden geretourneerd | ja |
Verzoekobject
Elke aanvraag heeft de volgende eigenschappen:
| Vastgoed | Beschrijving | Verplicht | Standaardwaarde | Voorbeeldwaarde |
|---|---|---|---|---|
url |
Absolute URL naar een API-eindpunt om op te reageren | ja | https://jsonplaceholder.typicode.com/posts |
|
method |
HTTP-werkwoord dat wordt gebruikt om de aanvraag te vergelijken met url |
Nee | GET |
GET |
nth |
Reageer alleen op de nde onderschepte aanvraag die overeenkomt met de mock'smethodurl, enbodyFragment |
Nee | 2 |
|
bodyFragment |
Een tekenreeks die aanwezig moet zijn in de hoofdtekst van de aanvraag | Nee | foo |
Opmerkingen
Gebruik een sterretje (*) in de url eigenschap als u een reeks tekens in de URL wilt vergelijken.
https://jsonplaceholder.typicode.com/* komt bijvoorbeeld overeen met https://jsonplaceholder.typicode.com/posts en https://jsonplaceholder.typicode.com/comments. In runtime converteert Dev Proxy elk * naar een reguliere expressie .*.
Dev Proxy negeert case bij het koppelen van de url eigenschap aan de aanvraag-URL. Bijvoorbeeld een mock voor overeenkomsten met https://jsonplaceholder.typicode.com/Posts een aanvraag aan https://jsonplaceholder.typicode.com/posts. Als u meerdere mocks definieert voor dezelfde methode met URL's die alleen verschillen in hoofdlettergebruik, gebruikt Dev Proxy de eerste overeenkomende mock.
Wanneer u mocks definieert, plaatst u eerst de meest specifieke mocks. Als u bijvoorbeeld twee mocks hebt, één voor en één voor https://jsonplaceholder.typicode.com/postshttps://jsonplaceholder.typicode.com/*, plaatst u eerst de eerste mock. Anders komt Dev Proxy overeen met de tweede mock eerst en retourneert het antwoord voor https://jsonplaceholder.typicode.com/* alle aanvragen.
Gebruik de nth eigenschap als u een ander antwoord naar dezelfde aanvraag-URL wilt verzenden. Gebruik deze bijvoorbeeld om een langdurige 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 geretourneerd met het completed bericht. Dev Proxy telt elke onderschepte aanvraag die overeenkomt met de mock's methodurlen, ongeacht bodyFragmentof er een mock-antwoord voor wordt geretourneerd. U hebt geen terugvalsimuleerde voor dezelfde URL nodig: als er geen mock van toepassing is op een aanvraag, geeft Dev Proxy deze door aan de API. Zie nth voor meer informatie over 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.
Antwoordobject
Elk antwoord heeft de volgende eigenschappen:
| Vastgoed | Beschrijving | Verplicht | Standaardwaarde | Voorbeeldwaarde |
|---|---|---|---|---|
body |
Hoofdtekst die moet worden verzonden als antwoord op de aanvraag | Nee | leeg | { "foo": "bar" } |
statusCode |
HTTP-statuscode van 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 de body eigenschap instelt op een JSON-object of -matrix, serialiseert Dev Proxy deze naar JSON. Als u deze instelt op een tekenreeks, verzendt Dev Proxy de tekenreeks as-is, zonder omringende aanhalingstekens. Gebruik een hoofdtekst van een tekenreeks om tekst zonder opmaak, HTML, XML of andere niet-JSON-inhoud te retourneren. Omdat de header standaard wordt content-type ingesteld op dev proxy, stelt u ook de content-type header application/jsonin op uw inhoud, bijvoorbeeldtext/plain.
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.
Als u aanvraaggegevens in het antwoord wilt spiegelen, gebruikt @request.body.* u tijdelijke aanduidingen in de hoofdtekst van het antwoord. Retourneert bijvoorbeeld @request.body.displayName de waarde van de displayName eigenschap uit de hoofdtekst van de aanvraag. Deze functie werkt met geneste objecten en matrices, zodat u dynamische antwoorden kunt maken die overeenkomen met de binnenkomende aanvraaggegevens. De vervanging van tijdelijke aanduidingen ondersteunt verschillende typen JSON-waarden, waaronder tekenreeksen, getallen, booleaanse waarden en complexe objecten.