Začínáme s dev proxy serverem
Dev Proxy je nástroj příkazového řádku, který pomáhá simulovat chování a chyby cloudových rozhraní API a pomáhá vytvářet odolné aplikace.
V tomto kurzu se dozvíte, jak nainstalovat, spustit a nakonfigurovat proxy pro vývoj.
Pokud narazíte na nějaké potíže, neváhejte nás kontaktovat vytvořením nového problému a my vám rádi pomůžeme.
Instalace vývojového proxy serveru
Nejjednodušší způsob instalace vývojového proxy serveru je použití wingetu. 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 proxy pro vývojáře přidá novou položku do path. Pokud chcete po instalaci použít dev proxy, musíte restartovat příkazový řádek, aby se zajistilo, že se aktualizovaly proměnné prostředí PATH.
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
Pokud chcete spustit beta verzi dev proxy, použijte devproxy-beta
Nejjednodušší způsob instalace vývojového proxy serveru je použití Homebrew. Případně můžete dev proxy nainstalovat ručně.
Pokud chcete nainstalovat proxy pro vývoj 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 proxy pro vývoj pomocí Homebrew, spusťte následující příkazy:
brew tap microsoft/dev-proxy
brew install dev-proxy-beta
Pokud chcete spustit beta verzi dev proxy, použijte devproxy-beta
První spuštění vývojového proxy serveru
Při prvním spuštění vývojového proxy serveru na počítači je potřeba provést několik kroků, abyste zajistili, že dev proxy může zachytávat požadavky z vašeho počítače a úspěšně reagovat. Po prvním spuštění nebudete muset tyto kroky opakovat.
- Spusťte proxy pro vývoj. Otevřete relaci příkazového řádku. Zadejte
devproxy
a stiskněte Enter. - Důvěryhodný certifikát. 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 proxy pro vývoj. Otevřete relaci příkazového řádku. Zadejte
devproxy
a stiskněte Enter. - Důvěryhodný certifikát. 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řijmout příchozí připojení. Zobrazí se upozornění. Tuto možnost potvrďte
Allow
výběrem.
Na příkazovém řádku se zobrazí následující výstup:
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
Ve výchozím nastavení je proxy pro vývojáře nakonfigurované tak, aby:
- Zachytávání požadavků na libovolný koncový bod rozhraní API zástupného symbolu JSON
- Simulace odpovědí na chyby rozhraní API a omezování rozhraní API s mírou selhání 50 %
Zachytávání požadavků
Dev Proxy zachytává požadavky na známé adresy URL z libovolné aplikace na vašem počítači. Když se zjistí požadavek, vývojový proxy předá požadavek rozhraní API (neprovedou žádnou akci) nebo vrátí odpověď.
- Odešlete požadavek do rozhraní JSON Placeholder API z příkazového řádku a přepněte zpět do procesu proxy, abyste zobrazili výstup.
V PowerShellu pomocí rutiny Invoke-WebRequest
odešlete požadavek GET do zástupného rozhraní API JSON.
Invoke-WebRequest -Uri https://jsonplaceholder.typicode.com/posts
Pokud používáte curl
, odešlete požadavek GET do rozhraní API pro zástupné symboly JSON pomocí následujícího příkazu.
curl -ix http://localhost:8000 https://jsonplaceholder.typicode.com/posts
K odeslání požadavku https://jsonplaceholder.typicode.com/posts
GET do můžete také použít 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 akci, kterou provedl vývojový proxy server. Dev Proxy simuluje chybovou odpověď s 50% pravděpodobností. Pokud váš požadavek nevrátí chybu, proxy pro vývojáře ji projde.
request GET https://jsonplaceholder.typicode.com/posts
api ╭ Passed through
╰ GET https://jsonplaceholder.typicode.com/posts
- Opakujte odesílání požadavků do zástupného rozhraní JSON API z příkazového řádku, dokud se nevrátí chybová odpověď.
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
Když dev proxy vrátí chybovou chaos
odpověď, zobrazí se v položce popisek.
- Zkuste odeslat požadavky do jiných koncových bodů dostupných v rozhraní JSON Placeholder API.
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í vývojového proxy serveru
Pokud už nevyžadujete, aby vývoj proxy běžel, měli byste ho vždy bezpečně zastavit.
- Stisknutím klávesy Ctrl + C bezpečně zastavte proxy pro vývoj.
Pokud vypnete relaci příkazového řádku, vývojový proxy server se neregistruje správně jako systémový proxy server a může docházet k některým běžným problémům.
Aktualizujte adresy URL na watch
Ve výchozím nastavení je proxy pro vývoj nakonfigurovaný tak, aby zachycoval všechny požadavky na rozhraní JSON Placeholder API. Proxy pro vývoj můžete nakonfigurovat tak, aby zachycuje požadavky na libovolné rozhraní HTTP API.
- Na příkazovém řádku spusťte příkaz
brew list dev-proxy
a vyhledejte instalační složku. - Otevřete instalační složku Dev Proxy ve Finderu.
- V instalační složce Dev Proxy otevřete
devproxyrc.json
v textovém editoru. 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, které dev proxy sleduje.
Představme si, že nechcete, aby dev proxy zachycoval požadavky zadané na konkrétní koncový bod.
- 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á proxy vývojářům, aby ignoroval všechny požadavky, které odpovídají dané adrese URL. V adrese URL můžete kombinovat vykřičníky a hvězdičky a spárovat je.
- Na příkazovém řádku zadejte
devproxy
a stisknutím klávesy Enter spusťte proxy pro vývoj. - Odešlete požadavek z
https://jsonplaceholder.typicode.com/posts/2
příkazového řádku a zobrazte výstup.
Zobrazí se položka potvrzující, že se požadavek ignoroval a předal do rozhraní API.
request GET https://jsonplaceholder.typicode.com/posts/2
api ╭ Passed through
╰ GET https://jsonplaceholder.typicode.com/posts/2
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 shodí, nezpracuje se znovu. Proto umístění adresy URL jako první zajistí, že se požadavek před zpracováním další adresy URL ignoruje.
Změna míry selhání
Ve výchozím nastavení je proxy pro vývojáře nakonfigurované tak, aby selhávané požadavky s 50% pravděpodobností, že se budou sledovat adresy URL. 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 rozhraní JSON Placeholder API vrátil chybovou odpověď.
- V instalační složce Dev Proxy otevřete
devproxyrc.json
v textovém editoru. rate
Vyhledejte vlastnost a aktualizujte hodnotu z50
na100
.
Soubor devproxyrc.json
obsahuje nastavení konfigurace, která se používají při spuštění dev proxy. 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 proxy pro vývoj. - 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 spouštění dev proxy.
devproxy --failure-rate 100
- Stisknutím klávesy Ctrl + C bezpečně zastavte proxy pro vývoj.
Simulace omezování
Ve výchozím nastavení dev proxy vrací rozsah obecných chyb 400 a 500. Tyto chybové odpovědi si můžete přizpůsobit podle svých potřeb.
Dev Proxy používá moduly plug-in k povolení různých chování rozhraní API. Ve výchozím nastavení pro vás povolíme dva moduly plug-in.
- Modul plug-in GenericRandomErrorPlugin umožňuje proxy vývojářům reagovat chybovou odpovědí.
- Modul plug-in RetryAfterPlugin umožňuje vývojovému proxy serveru vložit dynamickou hodnotu do hlavičky Retry-After v odpovědi na chybu.
Pojďme změnit konfiguraci tak, aby vývojový proxy server vždy vracel chybovou 429 Too Many requests
odpověď, která simuluje omezování.
Nejprve vyhledejme umístění souboru, který obsahuje definice chyb.
- V instalační složce Dev Proxy otevřete
devproxyrc.json
v textovém editoru. - V poli
plugins
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í vývojového 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.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"
}
}
]
}
- Na příkazovém řádku zadejte
devproxy
a stisknutím klávesy Enter spusťte proxy pro vývoj. - Odešlete požadavek do zástupného rozhraní API JSON z příkazového řádku a zobrazte výstup.
request GET https://jsonplaceholder.typicode.com/posts
chaos ╭ 429 TooManyRequests
╰ GET https://jsonplaceholder.typicode.com/posts
- Stisknutím klávesy Ctrl + C bezpečně zastavte proxy pro vývoj.
Další krok
Naučte se používat dev proxy k simulaci náhodných chyb pro vaši vlastní aplikaci.
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro