Pozorowanie odpowiedzi
Aby zdefiniować pozorne odpowiedzi, utwórz plik o nazwie mocks.json
w bieżącym katalogu roboczym. Ten plik umożliwia zdefiniowanie określonego zestawu makiety dla każdego projektu, z którym pracujesz. Plik zawiera obiekt z tablicą zawierającą mocks
makiety obiektów.
Porada
Zamiast ręcznie tworzyć plik makiety, możesz użyć polecenia MockGeneratorPlugin
, aby wygenerować plik makiety na podstawie przechwyconych żądań.
Poniższa konfiguracja przedstawia dwie pozorne odpowiedzi na potrzeby pobierania informacji o bieżącym użytkowniku. Gdy żądasz informacji o bieżącym użytkowniku, serwer proxy odpowiada z pozorną odpowiedzią. Gdy zażądasz informacji o zdjęciu użytkownika, serwer proxy zwróci kod stanu 404.
{
"$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.14.1/mockresponseplugin.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"
}
]
}
},
{
"request": {
"url": "https://graph.microsoft.com/v1.0/me/photo",
"method": "GET"
},
"response": {
"statusCode": 404
}
}
]
}
Pierwszeństwo kolejności
Makiety są dopasowywane w kolejności, w której są zdefiniowane w mocks.json
pliku. Jeśli zdefiniujesz wiele odpowiedzi przy użyciu tego samego adresu URL i metody, zostanie użyta pierwsza zgodna odpowiedź.
W przypadku korzystania z poniższej konfiguracji serwer proxy odpowiada na wszystkie GET
żądania za https://graph.microsoft.com/v1.0/me/photo
pomocą polecenia 500 Internal Server Error
.
{
"$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.14.1/mockresponseplugin.schema.json",
"mocks": [
{
"request": {
"url": "https://graph.microsoft.com/v1.0/me/photo",
"method": "GET"
},
"response": {
"statusCode": 500
}
},
{
"request": {
"url": "https://graph.microsoft.com/v1.0/me/photo",
"method": "GET"
},
"response": {
"statusCode": 404
}
}
]
}
Obsługa symboli wieloznacznych
Serwer proxy obsługuje użycie symboli wieloznacznych we właściwości adresu URL. Znak gwiazdki (*
) umożliwia dopasowanie dowolnej serii znaków w adresie URL.
W przypadku korzystania z poniższej konfiguracji serwer proxy odpowiada na wszystkie żądania, aby uzyskać profil dowolnego użytkownika z tą samą odpowiedzią.
{
"request": {
"url": "https://graph.microsoft.com/v1.0/users/*"
},
"response": {
"body": {
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity",
"businessPhones": ["+1 425 555 0109"],
"displayName": "Adele Vance",
"givenName": "Adele",
"jobTitle": "Product Marketing Manager",
"mail": "AdeleV@M365x214355.onmicrosoft.com",
"mobilePhone": null,
"officeLocation": "18/2111",
"preferredLanguage": "en-US",
"surname": "Vance",
"userPrincipalName": "AdeleV@M365x214355.onmicrosoft.com",
"id": "87d349ed-44d7-43e1-9a83-5f2406dee5bd"
}
}
}
W przypadku korzystania z poniższej konfiguracji serwer proxy zwraca ten sam obraz z dysku, gdy żądasz pobrania pliku binarnego zdjęcia dowolnego użytkownika.
{
"request": {
"url": "https://graph.microsoft.com/v1.0/users/*/photo/$value"
},
"response": {
"body": "@picture.jpg",
"headers": [
{
"name": "content-type",
"value": "image/jpeg"
}
]
}
}
W przypadku korzystania z poniższej konfiguracji serwer proxy zwraca tę samą odpowiedź, gdy żądasz pobrania profilu bieżącego użytkownika z dowolnym parametrem ciągu zapytania.
{
"request": {
"url": "https://graph.microsoft.com/v1.0/me?*"
},
"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"
}
}
},
Odpowiadanie zawartością pliku
Aby zachować czyszczenie i organizowanie pliku makiety, możesz przechowywać zawartość odpowiedzi w osobnym pliku i odwoływać się do niego w pliku makiety. Aby poinstruować serwer proxy deweloperów, aby załadować treść odpowiedzi makiety z pliku, ustaw body
właściwość na @
następującą po ścieżce pliku względem pliku makiety.
Na przykład poniższa wyśmiewa konfigurację odpowiedzi, nakazuje serwerowi proxy deweloperów odpowiadanie na wszelkie żądania https://graph.microsoft.com/v1.0/me
z zawartością response.json
pliku znajdującego się w tym samym folderze co plik makiety.
{
"request": {
"url": "https://graph.microsoft.com/v1.0/me",
"method": "GET"
},
"response": {
"body": "@response.json",
"headers": [
{
"name": "content-type",
"value": "application/json; odata.metadata=minimal"
}
]
}
}
Użycie - @
token działa z plikami tekstowymi i binarnymi.
Obsługa usługi Microsoft Graph Batch
Serwer proxy deweloperów obsługuje pozorowanie odpowiedzi wysyłanych w partiach żądań do programu Microsoft Graph.
Nie ma żadnych specjalnych wymagań dotyczących dołączania odpowiedzi do żądań wsadowych w plikach makiety, jednak jeśli żądanie nie jest zgodne z wyśmiewaną odpowiedzią 502 Bad Gateway
, zwracana jest odpowiedź.
Obsługa żądania niezadokowanego
Serwer proxy deweloperów obsługuje zgłaszanie błędu, gdy serwer proxy przechwytuje niezadokowane żądanie. Możliwość niezadokowania żądań jest przydatna do identyfikowania nieodebranych żądań w pliku makiety.
Aby włączyć tę funkcję, dodaj i włącz blockUnmockedRequests
ustawienie w sekcji MockResponsePlugin config w pliku devproxyrc .
{
"mocksPlugin": {
"mocksFile": "mocks.json",
"blockUnmockedRequests": true
}
}
Po przechwyceniu 502 Bad Gateway
niezadokowanego żądania zostanie zwrócona odpowiedź.
Następny krok
Dowiedz się więcej o mockResponsePlugin.
Przykłady
Zobacz również powiązane przykłady serwera proxy deweloperów: