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.

  1. Spusťte proxy pro vývoj. Otevřete relaci příkazového řádku. Zadejte devproxy a stiskněte Enter.
  2. Důvěryhodný certifikát. Dev Proxy nainstaluje certifikát s názvem Dev Proxy CA. Zobrazí se upozornění. Výběrem Yes 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.
  3. 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.
  1. Spusťte proxy pro vývoj. Otevřete relaci příkazového řádku. Zadejte devproxy a stiskněte Enter.
  2. 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.
  3. 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ů

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/postsGET 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 z 50 na 100.

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 hodnotu configSection vlastnosti.
  • Dále v souboru vyhledejte genericRandomErrorPlugin objekt. Poznamenejte si hodnotu errorsFile 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ýjimkou 429 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.