Rozpoczynanie pracy z serwerem proxy deweloperów

Dev Proxy to narzędzie wiersza polecenia, które pomaga symulować zachowania i błędy interfejsów API w chmurze, aby ułatwić tworzenie odpornych aplikacji.

Z tego samouczka dowiesz się, jak zainstalować, uruchomić i skonfigurować serwer proxy deweloperów.

Jeśli napotkasz jakiekolwiek trudności, nie wahaj się skontaktować się z nami, podnosząc nowy problem i cieszymy się, że pomożemy Ci.

Instalowanie serwera proxy deweloperskiego

Najprostszym sposobem zainstalowania serwera proxy deweloperskiego jest użycie zestawu winget. Alternatywnie można zainstalować serwer proxy deweloperów ręcznie.

Aby zainstalować serwer proxy deweloperów przy użyciu zestawu winget, uruchom następujące polecenie:

winget install Microsoft.DevProxy --silent

Ważne

Instalator serwera proxy deweloperów dodaje nowy wpis do ścieżki. Aby użyć serwera proxy deweloperskiego po instalacji, należy ponownie uruchomić wiersz polecenia, aby upewnić się, że zmienne środowiskowe PATH zostały odświeżone.

Uwaga

Aby wypróbować najnowsze funkcje w wersji zapoznawczej, zainstaluj wersję beta serwera proxy deweloperskiego.

Aby zainstalować serwer proxy deweloperów przy użyciu zestawu winget, uruchom następujące polecenie:

winget install Microsoft.DevProxy.Beta --silent

Aby uruchomić wersję beta serwera proxy deweloperskiego, użyj polecenia devproxy-beta

Najprostszym sposobem zainstalowania serwera proxy deweloperskiego jest użycie Homebrew. Alternatywnie można zainstalować serwer proxy deweloperów ręcznie.

Aby zainstalować serwer proxy deweloperów przy użyciu Homebrew, uruchom następujące polecenia:

brew tap microsoft/dev-proxy
brew install dev-proxy

Uwaga

Aby wypróbować najnowsze funkcje w wersji zapoznawczej, zainstaluj wersję beta serwera proxy deweloperskiego.

Aby zainstalować serwer proxy deweloperów przy użyciu Homebrew, uruchom następujące polecenia:

brew tap microsoft/dev-proxy
brew install dev-proxy-beta

Aby uruchomić wersję beta serwera proxy deweloperskiego, użyj polecenia devproxy-beta

Uruchamianie serwera proxy deweloperskiego po raz pierwszy

Przy pierwszym uruchomieniu serwera proxy deweloperskiego na maszynie należy wykonać kilka kroków, aby upewnić się, że serwer proxy deweloperów może przechwytywać żądania z maszyny i reagować pomyślnie. Po pierwszym uruchomieniu nie trzeba powtarzać tych kroków.

  1. Uruchom serwer proxy deweloperów. Otwórz sesję wiersza polecenia. Wprowadź devproxy i naciśnij klawisz Enter.
  2. Certyfikat zaufania. Serwer proxy deweloperów instaluje certyfikat o nazwie Dev Proxy CA. Zostanie wyświetlone ostrzeżenie. Wybierz, Yes aby potwierdzić, że chcesz zainstalować certyfikat. Serwer proxy deweloperów używa tego certyfikatu do odszyfrowywania ruchu HTTPS wysyłanego z maszyny.
  3. Zezwalaj na dostęp do zapory. Zapora systemu Windows blokuje serwer proxy. Zostanie wyświetlone ostrzeżenie. Wybierz Allow access przycisk, aby zezwolić na ruch przez zaporę.
  1. Uruchom serwer proxy deweloperów. Otwórz sesję wiersza polecenia. Wprowadź devproxy i naciśnij klawisz Enter.
  2. Certyfikat zaufania. Serwer proxy deweloperów instaluje certyfikat o nazwie Dev Proxy CA, którego używa do odszyfrowywania ruchu HTTPS wysyłanego z maszyny. Zostanie wyświetlone ostrzeżenie. Naciśnij klawisz y , aby potwierdzić, że chcesz ufać certyfikatowi.
  3. Zaakceptuj połączenia przychodzące. Zostanie wyświetlone ostrzeżenie. Wybierz, Allow aby potwierdzić.

W wierszu polecenia są wyświetlane następujące dane wyjściowe:

8 error responses loaded from devproxy-errors.json
Listening on 127.0.0.1:8000...
Hotkeys: issue (w)eb request, (r)ecord, (s)top recording, (c)lear screen
Press CTRL+C to stop Dev Proxy

Domyślnie serwer proxy deweloperów jest skonfigurowany do:

  • Przechwytywanie żądań wysyłanych do dowolnego punktu końcowego interfejsu API symbolu zastępczego JSON
  • Symulowanie odpowiedzi na błędy interfejsu API i ograniczanie przepływności interfejsu API z szybkością awarii wynoszącą 50%

Przechwytywanie żądań

Serwer proxy deweloperów przechwytuje żądania wysyłane do znanych adresów URL z dowolnej aplikacji na maszynie. Po wykryciu żądania serwer proxy dewelopera przekazuje żądanie do interfejsu API (nie podejmij żadnej akcji) lub zwraca odpowiedź.

  • Wyślij żądanie do interfejsu API symbolu zastępczego JSON z wiersza polecenia i wróć do procesu serwera proxy, aby wyświetlić dane wyjściowe.

W programie PowerShell użyj Invoke-WebRequest polecenia cmdlet, aby wysłać żądanie GET do interfejsu API symbolu zastępczego JSON.

Invoke-WebRequest -Uri https://jsonplaceholder.typicode.com/posts

Jeśli używasz metody curl, wyślij żądanie GET do interfejsu API symbolu zastępczego JSON przy użyciu następującego polecenia.

curl -ix http://localhost:8000 https://jsonplaceholder.typicode.com/posts

Możesz również użyć klienta interfejsu API, takiego jak Postman , aby wysłać żądanie GET do https://jsonplaceholder.typicode.com/postsusługi .

Wpis jest wyświetlany z podstawowymi informacjami na temat żądania przychodzącego i akcją wykonaną przez serwer proxy deweloperów. Serwer proxy deweloperów symuluje odpowiedź na błąd z 50% szansą. Jeśli żądanie nie zwróci błędu, serwer proxy deweloperów przekazuje go.

 request     GET https://jsonplaceholder.typicode.com/posts
     api   ╭ Passed through
           ╰ GET https://jsonplaceholder.typicode.com/posts
  • Powtarzaj wysyłanie żądań do interfejsu API symbolu zastępczego JSON z wiersza polecenia, aż zostanie zwrócona odpowiedź o błędzie.
 request     GET https://jsonplaceholder.typicode.com/posts
     api   ╭ Passed through
           ╰ GET https://jsonplaceholder.typicode.com/posts
 request     GET https://jsonplaceholder.typicode.com/posts
   chaos   ╭ 403 Forbidden
           ╰ GET https://jsonplaceholder.typicode.com/posts

Gdy serwer proxy deweloperów zwraca odpowiedź o błędzie, chaos w wpisie zostanie wyświetlona etykieta.

  • Spróbuj wysłać żądania do innych punktów końcowych dostępnych w interfejsie API symbolu zastępczego JSON
    • https://jsonplaceholder.typicode.com/posts
    • https://jsonplaceholder.typicode.com/posts/1
    • https://jsonplaceholder.typicode.com/posts/1/comments
    • https://jsonplaceholder.typicode.com/comments?postId=1

Bezpieczne zatrzymywanie serwera proxy deweloperów

Jeśli serwer proxy deweloperów nie będzie już uruchomiony, zawsze należy go bezpiecznie zatrzymać.

  • Naciśnij klawisze Ctrl + C , aby bezpiecznie zatrzymać serwer proxy deweloperów.

Jeśli zamkniesz sesję wiersza polecenia, serwer proxy dewelopera nie wyrejestruje się poprawnie jako serwer proxy systemu i może wystąpić niektóre typowe problemy.

Aktualizowanie adresów URL do watch

Domyślnie serwer proxy deweloperów jest skonfigurowany do przechwytywania wszystkich żądań do interfejsu API symbolu zastępczego JSON. Serwer proxy deweloperów można skonfigurować tak, aby przechwycił żądania do dowolnego interfejsu API HTTP.

  • W wierszu polecenia uruchom polecenie brew list dev-proxy , aby zlokalizować folder instalacyjny.
  • Otwórz folder instalacyjny serwera proxy dev w programie Finder.
  • W folderze instalacyjnym serwera proxy deweloperów otwórz plik devproxyrc.json w edytorze tekstów.
  • Znajdź tablicę urlsToWatch .
"urlsToWatch": [
  "https://jsonplaceholder.typicode.com/*"
],

Tablica urlsToWatch reprezentuje znane adresy URL. Serwer proxy deweloperów obserwuje żądania z bieżącego wpisu do dowolnego punktu końcowego. Wpis używa gwiazdki po adresie URL jako symbol wieloznaczny. Dodanie kolejnych wpisów do tej tablicy rozszerza adresy URL, dla których zwraca uwagę serwer proxy deweloperów.

Rozważmy, aby serwer proxy deweloperów nie przechwycił żądań wysyłanych do określonego punktu końcowego.

  • Dodaj nowy wpis do tablicy urlsToWatch .
"urlsToWatch": [
  "!https://jsonplaceholder.typicode.com/posts/2",
  "https://jsonplaceholder.typicode.com/*"
],

Wykrzyknik na początku adresu URL informuje serwer proxy dewelopera o ignorowaniu żądań pasujących do tego adresu URL. W adresie URL można mieszać i dopasowywać wykrzykniki i gwiazdki.

  • W wierszu polecenia wprowadź devproxy i naciśnij klawisz Enter , aby uruchomić serwer proxy deweloperów.
  • Wyślij żądanie do https://jsonplaceholder.typicode.com/posts/2 z wiersza polecenia i wyświetl dane wyjściowe.

Zostanie wyświetlony wpis potwierdzający, że żądanie zostało zignorowane i przekazane do interfejsu API.

request     GET https://jsonplaceholder.typicode.com/posts/2
     api   ╭ Passed through
           ╰ GET https://jsonplaceholder.typicode.com/posts/2

Kolejność, w jakiej adresy URL są wymienione w tablicy urlsToWatch , jest ważna. Serwer proxy deweloperów przetwarza te adresy URL w kolejności. Gdy adres URL jest zgodny, nie jest przetwarzany ponownie. W związku z tym umieszczenie adresu URL najpierw gwarantuje, że żądanie zostanie zignorowane przed przetworzeniem następnego adresu URL.

Współczynnik niepowodzeń zmian

Domyślnie serwer proxy deweloperów jest skonfigurowany do żądań niepomyślnych z 50% szansą na obserwowane adresy URL. Możesz zwiększyć lub zmniejszyć prawdopodobieństwo zwrócenia odpowiedzi na błąd żądania.

Zaktualizujmy współczynnik niepowodzeń, aby każde żądanie do interfejsu API symbolu zastępczego JSON zwracało odpowiedź o błędzie.

  • W folderze instalacyjnym serwera proxy deweloperów otwórz plik devproxyrc.json w edytorze tekstów.
  • rate Znajdź właściwość i zaktualizuj wartość z 50 na 100.

Plik devproxyrc.json zawiera ustawienia konfiguracji, które są używane podczas uruchamiania serwera proxy deweloperskiego. Podczas zmieniania ustawień konfiguracji zawsze należy zatrzymać i uruchomić serwer proxy deweloperów, aby zmiany zostały utrwalone.

  • W wierszu polecenia wprowadź devproxy i naciśnij klawisz Enter , aby uruchomić serwer proxy deweloperów.
  • Wyślij żądanie do interfejsu API symbolu zastępczego JSON z wiersza polecenia i wyświetl dane wyjściowe.

Alternatywnie można zastąpić ustawienia konfiguracji w czasie wykonywania przy użyciu opcji podczas uruchamiania --failure-rate serwera proxy deweloperów.

devproxy --failure-rate 100
  • Naciśnij klawisze Ctrl + C, aby bezpiecznie zatrzymać serwer proxy deweloperów.

Symulowanie ograniczania przepustowości

Domyślnie serwer proxy deweloperów zwraca zakres ogólnych odpowiedzi na błędy 400 i 500. Te odpowiedzi na błędy można dostosować do własnych potrzeb.

Serwer proxy deweloperów używa wtyczek do włączania różnych zachowań interfejsu API, domyślnie włączamy dwie wtyczki.

Zmieńmy konfigurację, aby serwer proxy deweloperów zawsze zwracał odpowiedź na błąd w 429 Too Many requests celu symulowania ograniczania przepustowości.

Najpierw znajdźmy lokalizację pliku zawierającego definicje błędów.

  • W folderze instalacyjnym serwera proxy deweloperów otwórz plik devproxyrc.json w edytorze tekstów.
  • W tablicy plugins znajdź wpis dla wtyczki GenericRandomErrorPlugin . Zanotuj configSection wartość właściwości .
  • W dalszej części pliku znajdź genericRandomErrorPlugin obiekt . Zanotuj errorsFile wartość właściwości .

Porada

Lokalizacja pliku błędów jest również wyświetlana w danych wyjściowych podczas uruchamiania serwera proxy deweloperów.

  • W folderze instalacyjnym serwera proxy deweloperów otwórz plik devproxy-errors.json w edytorze tekstów.
  • Usuń wszystkie wpisy odpowiedzi w responses tablicy, z wyjątkiem 429 odpowiedzi.
{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.14.1/genericrandomerrorplugin.schema.json",
  "responses": [
    {
      "statusCode": 429,
      "body": {
        "message": "Too Many Requests",
        "details": "The user has sent too many requests in a given amount of time (\"rate limiting\")."
      },
      "headers": {
        "Retry-After": "@dynamic"
      }
    }
  ]
}
  • W wierszu polecenia wprowadź devproxy i naciśnij klawisz Enter , aby uruchomić serwer proxy deweloperów.
  • Wyślij żądanie do interfejsu API symbolu zastępczego JSON z wiersza polecenia i wyświetl dane wyjściowe.
 request     GET https://jsonplaceholder.typicode.com/posts
   chaos   ╭ 429 TooManyRequests
           ╰ GET https://jsonplaceholder.typicode.com/posts
  • Naciśnij klawisze Ctrl + C, aby bezpiecznie zatrzymać serwer proxy deweloperów.

Następny krok

Dowiedz się, jak używać serwera proxy deweloperów do symulowania losowych błędów dla własnej aplikacji.