Udostępnij za pośrednictwem


Symulowanie próbnych odpowiedzi w internecie

Używanie Dev Proxy to najprostszy sposób pozorowania interfejsu API. Niezależnie od tego, czy tworzysz front-end, a interfejs API nie jest jeszcze gotowy, czy musisz zintegrować swoje zaplecze z usługą zewnętrzną, albo chcesz przetestować aplikację z różnymi odpowiedziami, Dev Proxy może pomóc w symulacji odpowiedzi API. Po zintegrowaniu interfejsu API z usługami w chmurze należy uwidocznić interfejs API w Internecie, aby usługa w chmurze mogła uzyskać do niego dostęp. Aby uwidocznić pozorowane odpowiedzi symulowane przez serwer proxy deweloperów w Internecie, użyj tuneli deweloperskich. W tym artykule wyjaśniono, jak skonfigurować pozorne odpowiedzi, które mają być uwidocznione w Internecie przy użyciu tuneli deweloperskich.

Definiowanie pozornych odpowiedzi

Aby uwidocznić symulowane odpowiedzi przez Dev Proxy w Internecie, zacznij od skonfigurowania odpowiedzi próbnych.

Ważne

W tej chwili tunele deweloperskie obsługują tylko udostępnianie symulowanych odpowiedzi HTTP w Internecie.

Tworzenie pozornych odpowiedzi

Utwórz plik o nazwie mocks.json zawierający pozorne odpowiedzi dla niestandardowego interfejsu API. Aby zasymulować na przykład żądanie GET do http://api.contoso.com/products, zdefiniuj:

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.29.2/mockresponseplugin.mocksfile.schema.json",
  "mocks": [
    {
      "request": {
        "url": "http://api.contoso.com/products",
        "method": "GET"
      },
      "response": {
        "headers": [
          {
            "name": "content-type",
            "value": "application/json"
          }
        ],
        "body": [
          {
            "id": 1,
            "name": "Contoso Coffee Beans",
            "price": 12.99
          },
          {
            "id": 2,
            "name": "Contoso Espresso Machine",
            "price": 249.99
          }
        ]
      }
    }
  ]
}

Możesz również symulować błędy, odpowiedzi binarne lub odpowiedzi warunkowe przy użyciu metody statusCode, nthlub bodyFragment.

Skonfiguruj MockResponsePlugin

Utwórz plik konfiguracji serwera proxy dev o nazwie devproxyrc.json i włącz polecenie MockResponsePlugin:

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v0.29.2/rc.schema.json",
  "plugins": [
    {
      "name": "MockResponsePlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "mocksPlugin"
    }
  ],
  "urlsToWatch": [
    "http://api.contoso.com/*"
  ],
  "mocksPlugin": {
    "mocksFile": "mocks.json"
  }
}

Ważne

Aby dopasować wiele punktów końcowych, użyj symboli wieloznacznych w pliku urlsToWatch. Aby zapewnić poprawne dopasowanie, najpierw umieść bardziej szczegółowe makiety w obiekcie mocks.json.

Weryfikowanie konfiguracji

Sprawdź, czy makiety działają poprawnie, uruchamiając Dev Proxy i wysyłając żądania do makietowanego API.

Uruchom serwer proxy deweloperów, zakładając, że konfiguracja serwera proxy deweloperów została zapisana w pliku o nazwie devproxyrc.json w bieżącym katalogu roboczym:

devproxy

Przetestuj swojego mock’a, wysyłając żądanie za pośrednictwem Proxy deweloperskiego:

curl -x http://127.0.0.1:8000 http://api.contoso.com/products

Powinna zostać wyświetlona próbna lista produktów zdefiniowana w mocks.json.

Uwidacznianie pozorowego interfejsu API za pomocą tuneli deweloperskich

Aby uwidocznić symulowane odpowiedzi w całym internecie, uruchom tunel deweloperski zamapowany na port serwera Proxy Dev. Skonfiguruj tunel tak, aby używał nazwy hosta skonfigurowanej dla symulowanego interfejsu API.

Ostrzeżenie

Zezwolenie na anonimowy dostęp do tunelu deweloperskiego oznacza, że każda osoba w Internecie może nawiązać połączenie z serwerem lokalnym, jeśli może odgadnąć identyfikator tunelu deweloperskiego.

devtunnel host -p 8000 -a --host-header api.contoso.com

To polecenie mapuje port serwera proxy dewelopera na publiczny adres URL HTTP. Teraz możesz uzyskać dostęp do pozornego interfejsu API z dowolnego miejsca:

curl http://<your-tunnel-id>-8000.<region>.devtunnels.ms/products