Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A válaszokat szimulálja.
Beépülő modulpéldány definíciója
{
"name": "MockResponsePlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "mocksPlugin"
}
Példa konfigurációra
{
"mocksPlugin": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/mockresponseplugin.schema.json",
"mocksFile": "mocks.json"
}
}
Konfigurációs tulajdonságok
| Ingatlan | Leírás | Alapértelmezett |
|---|---|---|
mocksFile |
A modellválaszokat tartalmazó fájl elérési útja | mocks.json |
blockUnmockedRequests |
Nem kijátszott kérések válaszának visszaadása 502 Bad Gateway |
false |
Parancssori beállítások
| Név | Leírás | Alapértelmezett |
|---|---|---|
-n, --no-mocks |
A modellkérelmek betöltésének letiltása | false |
--mocks-file |
A modellválaszokat tartalmazó fájl elérési útja | - |
Példák példaképek a mocks fájlra
Az alábbiakban példákat láthat a modellobjektumokra.
Válasz szövegtörzsgel
Válasz egy 200 OK-választ és egy JSON-törzset tartalmazó kérésre.
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.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"
}
]
}
}
]
}
Válasz hibával
Válaszoljon egy 404-ben nem található választ tartalmazó kérésre.
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/mockresponseplugin.mocksfile.schema.json",
"mocks": [
{
"request": {
"url": "https://graph.microsoft.com/v1.0/me/photo",
"method": "GET"
},
"response": {
"statusCode": 404
}
}
]
}
Válasz bináris adatokkal
Válasz egy lemezen lévő fájlból betöltött bináris lemezképet tartalmazó kérésre.
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.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"
}
]
}
}
]
}
Válasz kérésre nth
Egy kérésre csak a második hívás után válaszolhat.
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.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
}
}
}
]
}
A kérelem törzsének megfelelő válasz
Válasz egy olyan kérésre, amely egy adott sztringet tartalmaz a törzsben.
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.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..."
}
}
}
]
}
Kérés adatainak tükrözése válaszként
Válasz olyan adatokkal, amelyek helyőrzők használatával @request.body.* tükrözik a kérelem törzsének értékeit.
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.2.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"
}
]
}
}
]
}
A következő kérésnek megfelelően:
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"
}
A válasz a következő:
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
}
Fájltulajdonságok szimulálása
| Ingatlan | Leírás | Kötelező |
|---|---|---|
request |
Kérelemobjektum , amely meghatározza a válaszkérést | igen |
response |
Válaszobjektum , amely meghatározza a visszaadandó választ | igen |
Objektum kérése
Minden kérelem a következő tulajdonságokkal rendelkezik:
| Ingatlan | Leírás | Kötelező | Alapértelmezett érték | Mintaérték |
|---|---|---|---|---|
url |
Az API-végpont abszolút URL-címe a válaszhoz | igen | https://jsonplaceholder.typicode.com/posts |
|
method |
A kérelem egyeztetéséhez használt HTTP-parancs url |
Nem | GET |
GET |
nth |
Azt határozza meg, hogy a proxynak csak az n. időpontra vonatkozó kérés elfogásakor kell válaszolnia | Nem | 2 |
|
bodyFragment |
Egy sztring, amely szerepelnie kell a kérelem törzsében | Nem | foo |
Megjegyzések
Használjon csillagot (*) a url tulajdonságban, ha meg szeretne egyezni az URL-címben szereplő karaktersorozatok bármelyikével. Például a https://jsonplaceholder.typicode.com/* megegyezik a https://jsonplaceholder.typicode.com/posts-gyel és a https://jsonplaceholder.typicode.com/comments-vel. Futtatókörnyezetben a Dev Proxy mindegyiket * normál kifejezéssé .*alakítja.
A makettek definiálásakor először a legspecifikusabb maketteket helyezze el. Ha például két makettje van, az egyik a másikhoz https://jsonplaceholder.typicode.com/posts , a másikhoz https://jsonplaceholder.typicode.com/*pedig az, helyezze először az első makettet. Ellenkező esetben a Dev Proxy először a második modellnek felel meg, és az összes kérés válaszát https://jsonplaceholder.typicode.com/* adja vissza.
Használja a nth tulajdonságot, ha egy másikat kell küldenie ugyanahhoz a kérelem URL-címéhez. Használhatja például egy hosszú ideig futó művelet szimulálására. Amikor első alkalommal hívja meg az API-t, egy üzenettel inprogress válaszol. A második alkalommal, amikor meghívja az API-t, egy választ ad vissza az completed üzenettel. További információ a nth tulajdonságról: Mock nth request.
A tulajdonság használatával a bodyFragment kéréseket a törzs tartalma alapján egyeztetheti. Ha például egyezni szeretne a törzsben lévő foo sztringet tartalmazó kérésekkel, állítsa a tulajdonságot a bodyFragment következőre foo: . A fejlesztői proxy bodyFragment csak a nem GETa .
Válaszobjektum
Minden válasz a következő tulajdonságokkal rendelkezik:
| Ingatlan | Leírás | Kötelező | Alapértelmezett érték | Mintaérték |
|---|---|---|---|---|
body |
A kérésre adott válaszként küldendő törzs | Nem | üres | { "foo": "bar" } |
statusCode |
Válasz HTTP-állapotkódja | Nem | 200 |
404 |
headers |
A válaszban szerepeltetni kívánt fejlécek tömbje | Nem | üres | [{ name: "content-type", "value": "application/json" }] |
Megjegyzések
Ha bináris adatokat szeretne visszaadni, állítsa a body tulajdonságot egy sztringértékre, amely a modellfájlhoz viszonyított fájlelérési úttal @ kezdődik. Visszaadja például a fájlban @picture.jpg tárolt képet ugyanabban a könyvtárban, picture.jpg mint a makettfájl.
A válaszban szereplő kérésadatok tükrözéséhez használjon @request.body.* helyőrzőket a válasz törzsében. A tulajdonság értékét például @request.body.displayName a displayName kérelem törzséből adja vissza. Ez a funkció beágyazott objektumokkal és tömbökkel működik, így dinamikus válaszokat hozhat létre, amelyek tükrözik a bejövő kérések adatait. A helyőrző csere különböző JSON-értéktípusokat támogat, például sztringeket, számokat, logikai értékeket és összetett objektumokat.