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.
- Uruchom serwer proxy deweloperów. Otwórz sesję wiersza polecenia. Wprowadź
devproxy
i naciśnij klawisz Enter. - 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. - 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ę.
- Uruchom serwer proxy deweloperów. Otwórz sesję wiersza polecenia. Wprowadź
devproxy
i naciśnij klawisz Enter. - 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. - 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/posts
usł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ść z50
na100
.
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.
- Wtyczka GenericRandomErrorPlugin umożliwia serwerowi proxy deweloperów reagowanie na błąd.
- Wtyczka RetryAfterPlugin umożliwia serwerowi proxy deweloperów wstrzyknięcie wartości dynamicznej do nagłówka Retry-After w odpowiedzi na błąd.
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 . ZanotujconfigSection
wartość właściwości . - W dalszej części pliku znajdź
genericRandomErrorPlugin
obiekt . ZanotujerrorsFile
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ątkiem429
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.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla