Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Na první pohled
Cílem: Ladění aplikace, zatímco dev proxy simuluje chyby rozhraní API
Čas: 15 minut
Pluginy:GenericRandomErrorPlugin
Požadavky: Nastavení dev proxy serveru, VS Code
Při vytváření aplikací, které volají rozhraní API, je potřeba zajistit, aby váš kód zpracovával chyby správně. Kombinací vývojového proxy serveru s ladicím programem nástroje Visual Studio (VS) Code můžete simulovat chyby rozhraní API a projít kód pro zpracování chyb, abyste ověřili, že funguje správně.
Přehled
Ladění pomocí Dev Proxy zahrnuje tři kroky:
- Konfigurace nástroje VS Code pro směrování požadavků HTTP přes dev Proxy
- Konfigurace dev proxy serveru pro simulaci konkrétních chyb
- Nastavení zarážek v kódu pro zpracování chyb a ladění
Konfigurace nástroje VS Code pro ladění pomocí dev proxy serveru
Způsob konfigurace nástroje VS Code závisí na používaném programovacím jazyce. Následující části ukazují, jak nakonfigurovat VS Code pro Node.js, technologie .NET a Python aplikace.
Node.js
Pokud chcete ladit Node.js aplikaci pomocí dev proxy serveru, nakonfigurujte soubor tak, aby nastavil proměnné prostředí proxy serveru a zakázal ověření certifikátu TLS/SSL.
Soubor: .vscode/launch.json
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Debug with Dev Proxy",
"skipFiles": [
"<node_internals>/**"
],
"program": "${workspaceFolder}/index.js",
"env": {
"NODE_ENV": "development",
"http_proxy": "http://127.0.0.1:8000",
"https_proxy": "http://127.0.0.1:8000",
"GLOBAL_AGENT_HTTP_PROXY": "http://127.0.0.1:8000",
"NODE_TLS_REJECT_UNAUTHORIZED": "0"
}
}
]
}
Důležité
Nastavení zakáže ověření certifikátu TLS/SSL. Toto nastavení používejte pouze během vývoje. Pokud chcete bezpečnější přístup, použijte k přímému schválení certifikátu Dev Proxy.
macOS/Linux:
"NODE_EXTRA_CA_CERTS": "${env:HOME}/.devproxy/rootCert.pem"
Windows:
"NODE_EXTRA_CA_CERTS": "${env:USERPROFILE}\\.devproxy\\rootCert.pem"
Proměnnou používá balíček, který poskytuje podporu proxy pro mnoho Node.js knihoven HTTP. Další informace o konfiguraci různých HTTP knihoven najdete v části Použití Dev Proxy s aplikacemi Node.js.
technologie .NET
technologie .NET aplikace automaticky používají nastavení systémového proxy serveru. Pokud chcete ladit technologie .NET aplikaci pomocí dev Proxy, obvykle nemusíte nastavovat žádné proměnné prostředí. Vytvořte základní konfiguraci ladění:
Soubor: .vscode/launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug with Dev Proxy",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceFolder}/bin/Debug/net8.0/MyApp.dll",
"args": [],
"cwd": "${workspaceFolder}",
"console": "internalConsole",
"stopAtEntry": false
}
]
}
Pokud vaše aplikace nepřebírá systémový proxy server, explicitně nastavte proměnné prostředí proxy serveru:
Soubor: .vscode/launch.json (s explicitním nastavením proxy serveru)
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug with Dev Proxy",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceFolder}/bin/Debug/net8.0/MyApp.dll",
"args": [],
"cwd": "${workspaceFolder}",
"console": "internalConsole",
"stopAtEntry": false,
"env": {
"http_proxy": "http://127.0.0.1:8000",
"https_proxy": "http://127.0.0.1:8000"
}
}
]
}
Návod
V systému Windows a macOS technologie .NET certifikátu Dev Proxy automaticky důvěřuje, pokud jste ho nainstalovali jako důvěryhodný kořenový certifikát během instalace Dev Proxy. Na Linuxu možná budete muset nastavit důvěru k certifikátu ručně. Informace o konfiguraci důvěryhodných certifikátů najdete v dokumentaci k vaší distribuci.
Python
Pokud chcete ladit Python aplikaci pomocí dev Proxy, nakonfigurujte soubor launch.json tak, aby nastavil proměnné prostředí proxy. Konfigurace závisí na tom, jestli používáte knihovnu nebo jiné knihovny HTTP.
Soubor: .vscode/launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug with Dev Proxy",
"type": "debugpy",
"request": "launch",
"program": "${workspaceFolder}/main.py",
"console": "integratedTerminal",
"env": {
"HTTP_PROXY": "http://127.0.0.1:8000",
"HTTPS_PROXY": "http://127.0.0.1:8000",
"REQUESTS_CA_BUNDLE": ""
}
}
]
}
Důležité
Nastavení na prázdný řetězec říká knihovně, aby přeskočila ověření certifikátu TLS/SSL. Toto nastavení používejte pouze během vývoje.
Pokud chcete bezpečnější přístup, odkažte na certifikát Dev Proxy:
macOS/Linux:
"REQUESTS_CA_BUNDLE": "${env:HOME}/.devproxy/rootCert.pem"
Windows:
"REQUESTS_CA_BUNDLE": "${env:USERPROFILE}\\.devproxy\\rootCert.pem"
Pokud používáte knihovnu , nakonfigurujte místo toho ověřování TLS/SSL pomocí proměnné prostředí:
{
"env": {
"HTTP_PROXY": "http://127.0.0.1:8000",
"HTTPS_PROXY": "http://127.0.0.1:8000",
"TLS/SSL_CERT_FILE": "${env:HOME}/.devproxy/rootCert.pem"
}
}
Konfigurace dev proxy serveru pro simulaci chyb
Pokud chcete ladit zpracování chyb, nakonfigurujte Dev Proxy tak, aby při volání rozhraní API aplikace vracela konkrétní chyby. Pomocí GenericRandomErrorPlugin simulujte chyby jako nebo .
Simulace chyby 429 (příliš mnoho požadavků)
Vytvořte konfigurační soubor dev proxy serveru, který simuluje omezování:
Soubor: devproxyrc.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/rc.schema.json",
"plugins": [
{
"name": "GenericRandomErrorPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "errorsConfig"
}
],
"urlsToWatch": [
"https://api.contoso.com/*"
],
"rate": 100,
"errorsConfig": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/genericrandomerrorplugin.schema.json",
"errorsFile": "errors.json"
}
}
Vytvořte soubor chyb s konkrétními odpověďmi na chyby:
Soubor: errors.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/genericrandomerrorplugin.errorsfile.schema.json",
"errors": [
{
"request": {
"url": "https://api.contoso.com/*"
},
"responses": [
{
"statusCode": 429,
"headers": [
{
"name": "content-type",
"value": "application/json"
},
{
"name": "Retry-After",
"value": "60"
}
],
"body": {
"error": {
"code": "TooManyRequests",
"message": "Rate limit exceeded. Retry after 60 seconds."
}
}
}
]
}
]
}
Návod
Nastavte na to, aby všechny požadavky selhaly, abyste během ladění konzistentně narazili na kód zpracování chyb. Snižte frekvenci, pokud chcete testovat přerušované chyby.
Simulace chyby 500 (vnitřní chyba serveru)
Pokud chcete simulovat chyby serveru, přidejte další chybovou odpověď:
Soubor: errors.json (více chyb)
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/genericrandomerrorplugin.errorsfile.schema.json",
"errors": [
{
"request": {
"url": "https://api.contoso.com/*"
},
"responses": [
{
"statusCode": 429,
"headers": [
{
"name": "content-type",
"value": "application/json"
},
{
"name": "Retry-After",
"value": "60"
}
],
"body": {
"error": {
"code": "TooManyRequests",
"message": "Rate limit exceeded. Retry after 60 seconds."
}
}
},
{
"statusCode": 500,
"headers": [
{
"name": "content-type",
"value": "application/json"
}
],
"body": {
"error": {
"code": "InternalServerError",
"message": "An unexpected error occurred."
}
}
}
]
}
]
}
Když definujete více chybových odpovědí, dev proxy náhodně vybere jednu pro každý zachycený požadavek.
Ladění kódu pro zpracování chyb
S nakonfigurovaným VS Code a dev Proxy teď můžete ladit kód zpracování chyb.
Krok 1: Nastavení zarážek
Otevřete zdrojový kód a nastavte zarážky v kódu pro zpracování chyb. Například v aplikaci Node.js:
async function fetchData() {
try {
const response = await fetch('https://api.contoso.com/data');
if (!response.ok) {
// Set a breakpoint here to debug error responses
throw new Error(`HTTP error: ${response.status}`);
}
return await response.json();
} catch (error) {
// Set a breakpoint here to debug exceptions
console.error('Failed to fetch data:', error);
throw error;
}
}
Krok 2: Spuštění dev proxy serveru
Spusťte dev Proxy s konfiguračním souborem:
devproxy --config-file devproxyrc.json
Krok 3: Spuštění ladění ve VS Code
- Otevření editoru VS Code
- Stiskněte klávesu F5 nebo vyberte Spustit ladění.
- Když vaše aplikace volá rozhraní API, dev proxy ho zachytí a vrátí chybu.
- VS Code se pozastaví na bodu zlomu.
- Použití ovládacích prvků ladění k procházení kódu a kontrole proměnných
Krok 4: Kontrola chyby
Když se VS Code zastaví na zarážce, použijte panel ladění k:
- Zobrazení stavového kódu a zprávy odpovědi na chybu
- Kontrola hodnot místních proměnných
- Projděte podrobně logiku opakování.
- Ověřte, že vaše chybové zprávy jsou uživatelsky přívětivé.
Automatické spuštění a zastavení dev proxy serveru
Pokud chcete zjednodušit ladicí pracovní postup, nakonfigurujte VS Code, aby při zahájení ladění automaticky spustil Dev Proxy a po dokončení ho zastavil. Nainstalujte rozšíření Dev Proxy Toolkit a nakonfigurujte úlohy:
Soubor: .vscode/tasks.json
{
"version": "2.0.0",
"tasks": [
{
"label": "devproxy-start",
"type": "devproxy",
"command": "start",
"args": [
"--config-file",
"devproxyrc.json"
],
"isBackground": true,
"problemMatcher": "$devproxy-watch"
},
{
"label": "devproxy-stop",
"type": "devproxy",
"command": "stop"
}
]
}
Pokud chcete tyto úlohy použít, aktualizujte:
Soubor: .vscode/launch.json (Node.js s automatickým startem)
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Debug with Dev Proxy",
"skipFiles": [
"<node_internals>/**"
],
"program": "${workspaceFolder}/index.js",
"preLaunchTask": "devproxy-start",
"postDebugTask": "devproxy-stop",
"env": {
"NODE_ENV": "development",
"http_proxy": "http://127.0.0.1:8000",
"https_proxy": "http://127.0.0.1:8000",
"GLOBAL_AGENT_HTTP_PROXY": "http://127.0.0.1:8000",
"NODE_TLS_REJECT_UNAUTHORIZED": "0"
}
}
]
}
Tipy pro efektivní ladění
- Abyste mohli konzistentně dosahovat svých breakpointů, nastavte v konfiguraci Dev Proxy serveru, aby každý požadavek selhal.
- Pokud chcete zjistit, jak váš kód zpracovává konkrétní chybu, použijte při ladění jedinou chybovou odpověď.
- Pokud chcete ověřit, že váš kód respektuje omezování, zkontrolujte, jestli čte a sleduje hlavičku při ladění chyb 429.
- Pokud chcete zajistit, aby váš kód řádně zpracovával neobvyklé odpovědi, použijte dev Proxy k simulaci hraničních případů, jako jsou poškozený kód JSON nebo chybějící hlavičky.
- Chcete-li přerušit pouze konkrétní chyby, použijte podmíněné zarážky ve VS Code tak, že kliknete pravým tlačítkem myši na zarážku a přidáte podmínku, jako je .
Viz také
- Použijte Dev Proxy s ladicími konfiguracemi ve Visual Studio Code – automatické spuštění Dev Proxy ve VS Code
- Testování aplikace s náhodnými chybami – simulace náhodných chyb rozhraní API
- Četnost selhání žádostí o změnu – úprava četnosti chyb
- Použití služby Dev Proxy s aplikacemi Node.js – konfigurace Node.js proxy serveru
- Použijte Dev Proxy s aplikacemi technologie .NET – konfigurace proxy pro technologie .NET