Udostępnij za pośrednictwem


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ą mocksmakiety 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: