MockResponsePlugin
Symuluje odpowiedzi.
Definicja wystąpienia wtyczki
{
"name": "MockResponsePlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
"configSection": "mocksPlugin"
}
Przykład konfiguracji
{
"mocksPlugin": {
"mocksFile": "mocks.json"
}
}
Właściwości konfiguracji
Właściwość | Opis | Default |
---|---|---|
mocksFile |
Ścieżka do pliku zawierającego pozorne odpowiedzi | mocks.json |
blockUnmockedRequests |
Zwracanie 502 Bad Gateway odpowiedzi dla żądań, które nie są wyśmiewane |
false |
Opcje wiersza polecenia
Nazwa | Opis | Default |
---|---|---|
-n, --no-mocks |
Wyłączanie ładowania pozornych żądań | false |
--mocks-file |
Ścieżka do pliku zawierającego pozorne odpowiedzi | - |
Przykłady plików makiety
Poniżej przedstawiono przykłady pozornych obiektów.
Odpowiadanie za pomocą treści
Odpowiedź na żądanie z odpowiedzią 200 OK i treścią 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"
}
]
}
}
Odpowiadanie z powodu błędu
Odpowiadanie na żądanie za pomocą odpowiedzi 404 Nie znaleziono.
{
"request": {
"url": "https://graph.microsoft.com/v1.0/me/photo",
"method": "GET"
},
"response": {
"statusCode": 404
}
}
Odpowiadanie przy użyciu danych binarnych
Odpowiadanie na żądanie przy użyciu obrazu binarnego załadowanego z pliku na dysku.
{
"request": {
"url": "https://graph.microsoft.com/v1.0/users/*/photo/$value",
"method": "GET"
},
"response": {
"body": "@picture.jpg",
"headers": [
{
"name": "content-type",
"value": "image/jpeg"
}
]
}
}
Odpowiadanie na nth
żądanie
Odpowiedz na żądanie dopiero po drugim wywołaniu.
{
"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
}
}
}
Odpowiadanie na dopasowanie treści żądania
Odpowiedz na żądanie zawierające określony ciąg w treści.
{
"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..."
}
}
}
Makieta właściwości pliku
Właściwość | Opis | Wymagane |
---|---|---|
request |
Obiekt żądania definiujący żądanie, na które ma odpowiadać | tak |
response |
Obiekt odpowiedzi definiujący odpowiedź do zwrócenia | tak |
Obiekt żądania
Każde żądanie ma następujące właściwości:
Właściwość | Opis | Wymagane | Wartość domyślna | Wartość przykładowa |
---|---|---|---|---|
url |
Bezwzględny adres URL do punktu końcowego interfejsu API w celu reagowania na | tak | https://jsonplaceholder.typicode.com/posts |
|
method |
Czasownik HTTP używany do dopasowywania żądania do url |
nie | GET |
GET |
nth |
Określa, że serwer proxy powinien odpowiadać tylko po przechwyceniu żądania dla czasu nth | nie | 2 |
|
bodyFragment |
Ciąg, który powinien być obecny w treści żądania | nie | foo |
Uwagi
Użyj gwiazdki () we url
właściwości ,*
jeśli chcesz dopasować dowolną serię znaków w adresie URL. Na przykład https://jsonplaceholder.typicode.com/*
dopasowania https://jsonplaceholder.typicode.com/posts
i https://jsonplaceholder.typicode.com/comments
. W środowisku uruchomieniowym serwer proxy deweloperów konwertuje każdy *
z nich na wyrażenie .*
regularne .
Podczas definiowania makiety należy najpierw umieścić najbardziej konkretne makiety. Jeśli na przykład masz dwa makiety, jeden dla https://jsonplaceholder.typicode.com/posts
i jeden dla https://jsonplaceholder.typicode.com/*
, najpierw umieść pierwszy makiety. W przeciwnym razie serwer proxy deweloperów jest zgodny z drugim pozorem i zwraca odpowiedź dla https://jsonplaceholder.typicode.com/*
wszystkich żądań.
nth
Użyj właściwości , jeśli chcesz wysłać inny adres URL żądania. Na przykład użyj jej do symulowania długotrwałej operacji. Przy pierwszym wywołaniu interfejsu API zwracana jest odpowiedź z komunikatem inprogress
. Przy drugim wywołaniu interfejsu API zwracana jest odpowiedź z komunikatem completed
. Aby uzyskać więcej informacji na temat nth
właściwości, zobacz Mock nth request.
bodyFragment
Za pomocą właściwości można dopasować żądania na podstawie zawartości treści. Jeśli na przykład chcesz dopasować żądania zawierające foo
ciąg w treści, ustaw bodyFragment
właściwość na foo
wartość . Serwer proxy deweloperów używa bodyFragment
tylko dla żądań innych niż GET
.
Obiekt odpowiedzi
Każda odpowiedź ma następujące właściwości:
Właściwość | Opis | Wymagane | Wartość domyślna | Wartość przykładowa |
---|---|---|---|---|
body |
Treść do wysłania jako odpowiedź na żądanie | nie | Pusty | { "foo": "bar" } |
statusCode |
Kod stanu HTTP odpowiedzi | nie | 200 |
404 |
headers |
Tablica nagłówków do uwzględnienia w odpowiedzi | nie | Pusty | [{ name: "content-type", "value": "application/json" }] |
Uwagi
Jeśli chcesz zwrócić dane binarne, ustaw body
właściwość na wartość ciągu, która zaczyna się od @
ścieżki pliku względem pliku makiety. Na przykład @picture.jpg
zwraca obraz przechowywany w picture.jpg
pliku w tym samym katalogu co plik makiety.