Začínáme s Dev Proxy
Dev Proxy je nástroj příkazového řádku, který vám pomůže simulovat chování a chyby cloudových rozhraní API, které vám pomůžou vytvářet odolné aplikace.
V tomto kurzu se dozvíte, jak nainstalovat, spustit a nakonfigurovat Dev Proxy.
Pokud narazíte na nějaké potíže, neváhejte nás kontaktovat vytvořením nového problému a jsme rádi, že vám pomůžeme.
Instalace dev proxy serveru
Nejjednodušší způsob instalace Dev Proxy je použití sady winget. Případně můžete dev Proxy nainstalovat ručně.
Pokud chcete nainstalovat Dev Proxy pomocí wingetu, spusťte následující příkaz:
winget install Microsoft.DevProxy --silent
Důležité
Instalační program dev Proxy přidá novou položku do path. Pokud chcete po instalaci používat Dev Proxy, musíte restartovat příkazový řádek, aby se zajistilo, že se proměnné prostředí PATH aktualizovaly.
Poznámka:
Pokud chcete vyzkoušet nejnovější funkce preview, nainstalujte beta verzi Dev Proxy.
Pokud chcete nainstalovat Dev Proxy pomocí wingetu, spusťte následující příkaz:
winget install Microsoft.DevProxy.Beta --silent
Spuštění beta verze dev proxy serveru devproxy-beta
Nejjednodušší způsob instalace Dev Proxy je použití Homebrew. Případně můžete dev Proxy nainstalovat ručně.
Pokud chcete nainstalovat Dev Proxy pomocí Homebrew, spusťte následující příkazy:
brew tap microsoft/dev-proxy
brew install dev-proxy
Poznámka:
Pokud chcete vyzkoušet nejnovější funkce preview, nainstalujte beta verzi Dev Proxy.
Pokud chcete nainstalovat Dev Proxy pomocí Homebrew, spusťte následující příkazy:
brew tap microsoft/dev-proxy
brew install dev-proxy-beta
Spuštění beta verze dev proxy serveru devproxy-beta
Nejjednodušší způsob instalace Dev Proxy je použití instalačního skriptu. Případně můžete dev Proxy nainstalovat ručně.
Pokud chcete nainstalovat Dev Proxy pomocí instalačního skriptu, spusťte následující příkazy:
bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)"
Pokud používáte PowerShell, spusťte následující příkaz:
(Invoke-WebRequest https://aka.ms/devproxy/setup.ps1).Content | Invoke-Expression
Poznámka:
Pokud chcete vyzkoušet nejnovější funkce preview, nainstalujte beta verzi Dev Proxy.
Pokud chcete nainstalovat Dev Proxy pomocí instalačního skriptu, spusťte následující příkazy:
bash -c "$(curl -sL https://aka.ms/devproxy/setup-beta.sh)"
Pokud používáte PowerShell, spusťte následující příkaz:
(Invoke-WebRequest https://aka.ms/devproxy/setup-beta.ps1).Content | Invoke-Expression
Spuštění beta verze dev proxy serveru devproxy-beta
První spuštění dev proxy serveru
Při prvním spuštění dev proxy serveru na počítači je několik kroků, které je potřeba provést, abyste zajistili, že dev proxy server dokáže zachycovat požadavky z počítače a úspěšně reagovat. Po prvním spuštění nebudete muset tyto kroky opakovat.
- Spusťte dev proxy server. Otevřete relaci příkazového řádku. Enter
devproxy
a stiskněte Enter. - Důvěřovat certifikátu. Dev Proxy nainstaluje certifikát s názvem
Dev Proxy CA
. Zobrazí se upozornění. VýběremYes
potvrďte, že chcete certifikát nainstalovat. Dev Proxy používá tento certifikát k dešifrování provozu HTTPS odeslaného z vašeho počítače. - Povolit přístup k bráně firewall. Brána Windows Firewall blokuje proxy server. Zobrazí se upozornění. Výběrem
Allow access
tlačítka povolíte provoz přes bránu firewall.
- Spusťte dev proxy server. Otevřete relaci příkazového řádku. Enter
devproxy
a stiskněte Enter. - Důvěřovat certifikátu. Dev Proxy nainstaluje certifikát s názvem
Dev Proxy CA
, který používá k dešifrování provozu HTTPS odeslaného z vašeho počítače. Zobrazí se upozornění. Stisknutím klávesy y potvrďte, že chcete certifikátu důvěřovat. - Přijměte příchozí připojení. Zobrazí se upozornění. Potvrďte výběr
Allow
.
Spusťte dev proxy server. Otevřete relaci příkazového řádku. Enter
devproxy
a stiskněte Enter.Důvěřovat certifikátu. Dev Proxy používá vlastní certifikát SSL k dešifrování provozu HTTPS odesílaných z vašeho počítače.
Důležité
Následující pokyny jsou určené pro Ubuntu. U jiných linuxových distribucí se kroky můžou lišit.
Pokud chcete certifikát nainstalovat a důvěřovat mu, spusťte na novém příkazovém řádku následující příkazy:
# Export Dev Proxy root certificate openssl pkcs12 -in ~/.config/dev-proxy/rootCert.pfx -clcerts -nokeys -out dev-proxy-ca.crt -passin pass:"" # Install the certificate sudo cp dev-proxy-ca.crt /usr/local/share/ca-certificates/ # Update certificates sudo update-ca-certificates
Příkazový řádek zobrazí následující výstup:
info 8 error responses loaded from devproxy-errors.json
info Dev Proxy API listening on http://localhost:8897...
info Dev Proxy 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
Ve výchozím nastavení je dev proxy nakonfigurovaný na:
- Zachytávání požadavků provedených do libovolného koncového bodu rozhraní API zástupného symbolu JSON
- Simulace chybových odpovědí rozhraní API a omezování rozhraní API s mírou selhání 50 %
Zachytávání požadavků
Dev Proxy bude zachycovat požadavky na známé adresy URL z libovolné aplikace na vašem počítači. Když se zjistí požadavek, vývojový proxy požadavek předá do rozhraní API (neprovedou žádnou akci) nebo vrátí odpověď.
- Odešlete požadavek do zástupného rozhraní API JSON z příkazového řádku a přepněte zpět na proces proxy serveru, abyste zobrazili výstup.
V PowerShellu použijte rutinu Invoke-WebRequest
k odeslání požadavku GET do zástupného rozhraní API JSON.
Invoke-WebRequest -Uri https://jsonplaceholder.typicode.com/posts
Pokud použijete curl
, odešlete požadavek GET do zástupného rozhraní API JSON pomocí následujícího příkazu.
curl -ikx http://localhost:8000 https://jsonplaceholder.typicode.com/posts
K odeslání požadavku https://jsonplaceholder.typicode.com/posts
GET můžete použít také klienta rozhraní API, jako je Postman.
Zobrazí se položka s některými základními informacemi o příchozím požadavku a akcí, kterou provedl vývojový proxy server. Dev Proxy simuluje chybovou odpověď s 50% pravděpodobností. Pokud váš požadavek nevrátí chybu, dev proxy ji předá.
req ╭ GET https://jsonplaceholder.typicode.com/posts
api ╰ Passed through
- Opakujte odesílání požadavků na zástupné rozhraní API JSON z příkazového řádku, dokud se nevrátí chybová odpověď.
req ╭ GET https://jsonplaceholder.typicode.com/posts
api ╰ Passed through
req ╭ GET https://jsonplaceholder.typicode.com/posts
oops ╰ 403 Forbidden
Když dev proxy server vrátí chybovou odpověď, chaos
v položce se zobrazí popisek.
- Zkuste odesílat požadavky na jiné koncové body dostupné v zástupném rozhraní API 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
Bezpečné zastavení dev proxy serveru
Pokud už nepotřebujete, aby byl vývoj proxy spuštěný, měli byste ho vždy bezpečně zastavit.
- Stisknutím kláves Ctrl + C bezpečně zastavíte dev proxy server.
Pokud relaci příkazového řádku vypnete, Dev Proxy se neregistruje správně jako systémový proxy server a může docházet k některým běžným problémům.
Aktualizace adres URL pro sledování
Ve výchozím nastavení je dev proxy nakonfigurovaný tak, aby zachycoval všechny požadavky vytvořené do zástupného rozhraní API JSON. Dev Proxy můžete nakonfigurovat tak, aby zachycuje požadavky na libovolné rozhraní HTTP API.
- Otevřete konfigurační soubor dev proxy spuštěním v příkazovém řádku:
devproxy config
. urlsToWatch
Vyhledejte pole.
"urlsToWatch": [
"https://jsonplaceholder.typicode.com/*"
],
Pole urlsToWatch
představuje známé adresy URL. Dev Proxy sleduje požadavky z aktuální položky do libovolného koncového bodu. Položka používá hvězdičku za adresou URL jako zástupný znak. Přidáním dalších položek do tohoto pole se rozšíří adresy URL, na které dev proxy server sleduje.
Předpokládejme, že nechcete, aby dev Proxy zachycoval požadavky provedené v určitém koncovém bodu.
- Přidejte do
urlsToWatch
pole novou položku.
"urlsToWatch": [
"!https://jsonplaceholder.typicode.com/posts/2",
"https://jsonplaceholder.typicode.com/*"
],
Vykřičník na začátku adresy URL říká dev proxy serveru, aby ignoroval všechny požadavky, které odpovídají této adrese URL. V adrese URL můžete kombinovat a rozlišovat vykřičníky a hvězdičky.
- Na příkazovém řádku zadejte
devproxy
a stisknutím klávesy Enter spusťte Dev Proxy. - Odešlete požadavek
https://jsonplaceholder.typicode.com/posts/2
z příkazového řádku a zobrazte výstup.
Když se ignorovaná adresa URL shoduje s požadavkem, Dev Proxy požadavek nezpracuje, takže se nezobrazí žádný výstup.
Pořadí, ve kterém jsou adresy URL uvedené v urlsToWatch
poli, je důležité. Dev Proxy zpracovává tyto adresy URL v pořadí. Když se adresa URL shoduje, nezpracuje se znovu. Proto umístěním adresy URL nejprve zajistíte, aby se požadavek před zpracováním další adresy URL ignoroval.
Změna četnosti selhání
Ve výchozím nastavení je Dev Proxy nakonfigurovaný tak, aby selhávají požadavky s 50% šancí na adresy URL, které se sledují. Můžete zvýšit nebo snížit pravděpodobnost, že požadavek vrátí chybovou odpověď.
Pojďme aktualizovat míru selhání tak, aby každý požadavek na zástupné rozhraní API JSON vrátil chybovou odpověď.
- Otevřete konfigurační soubor dev proxy spuštěním v příkazovém řádku:
devproxy config
. rate
Vyhledejte vlastnost a aktualizujte hodnotu z50
na100
.
Soubor devproxyrc.json
obsahuje konfigurační nastavení, která se použijí při spuštění dev proxy serveru. Při změně nastavení konfigurace byste měli vždy zastavit a spustit Dev Proxy, aby se změny zachovaly.
- Na příkazovém řádku zadejte
devproxy
a stisknutím klávesy Enter spusťte Dev Proxy. - Odešlete požadavek do zástupného rozhraní API JSON z příkazového řádku a zobrazte výstup.
Případně můžete přepsat nastavení konfigurace za běhu pomocí --failure-rate
možnosti při spuštění dev proxy serveru.
devproxy --failure-rate 100
- Stisknutím kláves Ctrl + C bezpečně zastavíte dev proxy server.
Simulace omezování
Dev Proxy ve výchozím nastavení vrací rozsah obecných chyb 400 a 500 chybových odpovědí. Tyto chybové odpovědi můžete přizpůsobit vašim potřebám.
Dev Proxy používá moduly plug-in k povolení různých chování rozhraní API ve výchozím nastavení dva moduly plug-in.
- Modul plug-in GenericRandomErrorPlugin poskytuje možnost, aby dev proxy server reagoval chybovou odpovědí.
- Modul plug-in RetryAfterPlugin poskytuje možnost, aby dev Proxy v odpovědi na chybu vložil dynamickou hodnotu do hlavičky Retry-After.
Pojďme změnit konfiguraci tak, aby dev proxy vždy vrátil chybovou 429 Too Many requests
odpověď pro simulaci omezování.
Nejprve vyhledejme umístění souboru, který obsahuje definice chyb.
- Otevřete konfigurační soubor dev proxy spuštěním v příkazovém řádku:
devproxy config
. plugins
V poli vyhledejte položku modulu plug-in GenericRandomErrorPlugin. Poznamenejte si hodnotuconfigSection
vlastnosti.- Dále v souboru vyhledejte
genericRandomErrorPlugin
objekt. Poznamenejte si hodnotuerrorsFile
vlastnosti.
Tip
Umístění souboru chyb se také zobrazí ve výstupu při spuštění dev proxy serveru.
- V instalační složce Dev Proxy otevřete
devproxy-errors.json
v textovém editoru. - Odeberte všechny položky odpovědi v
responses
poli s výjimkou429
odpovědi.
{
"$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.20.0/genericrandomerrorplugin.schema.json",
"errors": [
{
"request": {
"url": "https://jsonplaceholder.typicode.com/*"
},
"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"
}
}
]
}
]
}
- Na příkazovém řádku zadejte
devproxy
a stisknutím klávesy Enter spusťte Dev Proxy. - Odešlete požadavek do zástupného rozhraní API JSON z příkazového řádku a zobrazte výstup.
req ╭ GET https://jsonplaceholder.typicode.com/posts
oops ╰ 429 TooManyRequests
- Stisknutím kláves Ctrl + C bezpečně zastavíte dev proxy server.
Další krok
Naučte se používat Dev Proxy k simulaci náhodných chyb pro vaši vlastní aplikaci.