Aan de slag met Dev Proxy
Dev Proxy is een opdrachtregelprogramma waarmee u gedrag en fouten van cloud-API's kunt simuleren om tolerante apps te bouwen.
In deze zelfstudie leert u hoe u Dev Proxy installeert, uitvoert en configureert.
Als u problemen ondervindt, aarzel dan niet om contact met ons op te nemen door een nieuw probleem op te stellen en wij helpen u graag.
Dev Proxy installeren
De eenvoudigste manier om Dev Proxy te installeren is door winget te gebruiken. U kunt dev proxy ook handmatig installeren.
Als u Dev Proxy wilt installeren met behulp van winget, voert u de volgende opdracht uit:
winget install Microsoft.DevProxy --silent
Belangrijk
Het installatieprogramma voor dev proxy voegt een nieuwe vermelding toe aan PATH. Als u Dev Proxy wilt gebruiken na de installatie, moet u de opdrachtprompt opnieuw starten om ervoor te zorgen dat de PATH-omgevingsvariabelen zijn vernieuwd.
Notitie
Installeer de bètaversie van Dev Proxy om de nieuwste preview-functies uit te proberen.
Als u Dev Proxy wilt installeren met behulp van winget, voert u de volgende opdracht uit:
winget install Microsoft.DevProxy.Beta --silent
De bètaversie van Dev Proxy gebruiken devproxy-beta
De eenvoudigste manier om Dev Proxy te installeren is door Homebrew te gebruiken. U kunt dev proxy ook handmatig installeren.
Voer de volgende opdrachten uit om Dev Proxy te installeren met Homebrew:
brew tap microsoft/dev-proxy
brew install dev-proxy
Notitie
Installeer de bètaversie van Dev Proxy om de nieuwste preview-functies uit te proberen.
Voer de volgende opdrachten uit om Dev Proxy te installeren met Homebrew:
brew tap microsoft/dev-proxy
brew install dev-proxy-beta
De bètaversie van Dev Proxy gebruiken devproxy-beta
De eenvoudigste manier om Dev Proxy te installeren, is met behulp van het installatiescript. U kunt dev proxy ook handmatig installeren.
Voer de volgende opdrachten uit om Dev Proxy te installeren met behulp van het installatiescript:
bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)"
Als u PowerShell gebruikt, voert u de volgende opdracht uit:
(Invoke-WebRequest https://aka.ms/devproxy/setup.ps1).Content | Invoke-Expression
Notitie
Installeer de bètaversie van Dev Proxy om de nieuwste preview-functies uit te proberen.
Voer de volgende opdrachten uit om Dev Proxy te installeren met behulp van het installatiescript:
bash -c "$(curl -sL https://aka.ms/devproxy/setup-beta.sh)"
Als u PowerShell gebruikt, voert u de volgende opdracht uit:
(Invoke-WebRequest https://aka.ms/devproxy/setup-beta.ps1).Content | Invoke-Expression
De bètaversie van Dev Proxy gebruiken devproxy-beta
Dev Proxy voor de eerste keer starten
De eerste keer dat u Dev Proxy op uw computer start, moet u een paar stappen uitvoeren om ervoor te zorgen dat Dev Proxy aanvragen van uw computer kan onderscheppen en succesvol kan reageren. U hoeft deze stappen niet te herhalen na de eerste uitvoering.
- Start Dev Proxy. Open een opdrachtpromptsessie. Enter en druk op Enter
devproxy
. - Vertrouwenscertificaat. Dev Proxy installeert een certificaat met de naam
Dev Proxy CA
. Er wordt een waarschuwing weergegeven. SelecteerYes
deze optie om te bevestigen dat u het certificaat wilt installeren. Dev Proxy gebruikt dit certificaat om HTTPS-verkeer te ontsleutelen dat vanaf uw computer wordt verzonden. - Firewalltoegang toestaan. Windows Firewall blokkeert de proxy. Er wordt een waarschuwing weergegeven. Selecteer
Allow access
de knop om verkeer via de firewall toe te staan.
- Start Dev Proxy. Open een opdrachtpromptsessie. Enter en druk op Enter
devproxy
. - Vertrouwenscertificaat. Dev Proxy installeert een certificaat met de naam
Dev Proxy CA
, dat wordt gebruikt voor het ontsleutelen van HTTPS-verkeer dat vanaf uw computer wordt verzonden. Er wordt een waarschuwing weergegeven. Druk op y om te bevestigen dat u het certificaat wilt vertrouwen. - Binnenkomende verbindingen accepteren. Er wordt een waarschuwing weergegeven. Selecteer
Allow
deze optie om te bevestigen.
Start Dev Proxy. Open een opdrachtpromptsessie. Enter en druk op Enter
devproxy
.Vertrouwenscertificaat. Dev Proxy maakt gebruik van een aangepast SSL-certificaat om HTTPS-verkeer te ontsleutelen dat vanaf uw computer wordt verzonden.
Belangrijk
De volgende instructies zijn voor Ubuntu. Voor andere Linux-distributies kunnen de stappen verschillen.
Als u het certificaat wilt installeren en vertrouwen, voert u in een nieuwe opdrachtprompt de volgende opdrachten uit:
# 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
De opdrachtprompt geeft de volgende uitvoer weer:
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
Dev Proxy is standaard geconfigureerd voor:
- Aanvragen onderscheppen die zijn gedaan voor een tijdelijke aanduiding voor JSON API-eindpunten
- API-foutreacties en API-beperking simuleren met een foutpercentage van 50%
Onderscheppingsaanvragen
Dev Proxy onderschept aanvragen naar bekende URL's van elke toepassing op uw computer. Wanneer een aanvraag wordt gedetecteerd, geeft Dev Proxy de aanvraag door aan de API (geen actie ondernemen) of retourneert een antwoord.
- Verzend een aanvraag naar de tijdelijke aanduiding voor JSON vanaf de opdrachtregel en ga terug naar het proxyproces om de uitvoer weer te geven.
Gebruik in PowerShell de Invoke-WebRequest
cmdlet om een GET-aanvraag te verzenden naar de tijdelijke aanduiding voor JSON.
Invoke-WebRequest -Uri https://jsonplaceholder.typicode.com/posts
Als u deze gebruikt curl
, verzendt u een GET-aanvraag naar de tijdelijke aanduidingen-API voor JSON met behulp van de volgende opdracht.
curl -ix http://localhost:8000 https://jsonplaceholder.typicode.com/posts
U kunt ook een API-client zoals Postman gebruiken om een GET-aanvraag naar te https://jsonplaceholder.typicode.com/posts
verzenden.
Er wordt een vermelding weergegeven met enkele basisinformatie over de binnenkomende aanvraag en de actie die dev proxy heeft uitgevoerd. Dev Proxy simuleert een foutreactie met een kans van 50%. Als uw aanvraag geen fout retourneert, geeft Dev Proxy deze door.
req ╭ GET https://jsonplaceholder.typicode.com/posts
api ╰ Passed through
- Herhaal het verzenden van aanvragen naar de tijdelijke aanduiding voor JSON vanaf de opdrachtregel totdat er een foutantwoord wordt geretourneerd.
req ╭ GET https://jsonplaceholder.typicode.com/posts
api ╰ Passed through
req ╭ GET https://jsonplaceholder.typicode.com/posts
oops ╰ 403 Forbidden
Wanneer Dev Proxy een foutbericht retourneert, wordt er een chaos
label weergegeven in de vermelding.
- Probeer aanvragen te verzenden naar andere eindpunten die beschikbaar zijn in de tijdelijke aanduidingen-API voor 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
Dev Proxy veilig stoppen
Wanneer u dev proxy niet meer nodig hebt om te worden uitgevoerd, moet u deze altijd veilig stoppen.
- Druk op Ctrl + C om dev proxy veilig te stoppen.
Als u de opdrachtpromptsessie afsluit, wordt de registratie van dev proxy niet correct opgeheven als de systeemproxy en kunnen er enkele veelvoorkomende problemen optreden.
De URL's bijwerken om te bekijken
Dev Proxy is standaard geconfigureerd voor het onderscheppen van aanvragen die zijn gedaan bij de tijdelijke aanduiding voor JSON. U kunt Dev Proxy configureren voor het onderscheppen van aanvragen naar elke HTTP-API.
- Open het configuratiebestand dev proxy door uit te voeren op de opdrachtregel:
devproxy config
. - Zoek de
urlsToWatch
matrix.
"urlsToWatch": [
"https://jsonplaceholder.typicode.com/*"
],
De urlsToWatch
matrix vertegenwoordigt de bekende URL's. Dev Proxy bekijkt aanvragen van de huidige vermelding naar een eindpunt. De vermelding gebruikt een sterretje na de URL als jokerteken. Als u meer vermeldingen toevoegt aan deze matrix, worden de URL's waarvoor Dev Proxy wordt uitgelogd, uitgebreid.
Laten we eens kijken of u niet wilt dat Dev Proxy aanvragen naar een specifiek eindpunt onderschept.
- Voeg een nieuwe vermelding toe aan de
urlsToWatch
matrix.
"urlsToWatch": [
"!https://jsonplaceholder.typicode.com/posts/2",
"https://jsonplaceholder.typicode.com/*"
],
De uitroepteken aan het begin van de URL vertelt Dev Proxy om aanvragen te negeren die overeenkomen met die URL. U kunt uitroeptekens en sterretjes combineren in een URL.
- Druk op de opdrachtregel op Enter
devproxy
en druk op Enter om de dev-proxy te starten. - Verzend een aanvraag vanaf
https://jsonplaceholder.typicode.com/posts/2
de opdrachtregel en bekijk de uitvoer.
Wanneer een genegeerde URL overeenkomt met een aanvraag, verwerkt Dev Proxy de aanvraag niet en wordt er dus geen uitvoer weergegeven.
De volgorde waarin de URL's in de urlsToWatch
matrix worden vermeld, is belangrijk. Dev Proxy verwerkt deze URL's in volgorde. Wanneer een URL overeenkomt, wordt deze niet opnieuw verwerkt. Daarom zorgt het plaatsen van de URL er eerst voor dat de aanvraag wordt genegeerd voordat de volgende URL wordt verwerkt.
Foutpercentage wijzigen
Dev Proxy is standaard geconfigureerd voor mislukte aanvragen met een kans van 50% op URL's die worden bekeken. U kunt de kans vergroten of verkleinen dat een aanvraag een foutmelding retourneert.
We gaan de foutfrequentie bijwerken zodat elke aanvraag voor de tijdelijke aanduiding voor de JSON-API een foutantwoord retourneert.
- Open het configuratiebestand dev proxy door uit te voeren op de opdrachtregel:
devproxy config
. - Zoek de
rate
eigenschap en werk de waarde bij van50
naar100
.
Het devproxyrc.json
bestand bevat configuratie-instellingen die worden gebruikt wanneer u Dev Proxy start. Wanneer u configuratie-instellingen wijzigt, moet u de Dev Proxy altijd stoppen en starten om de wijzigingen te behouden.
- Druk op de opdrachtregel op Enter
devproxy
en druk op Enter om de dev-proxy te starten. - Verzend een aanvraag naar de tijdelijke aanduidingS-API voor JSON vanaf de opdrachtregel en bekijk de uitvoer.
U kunt configuratie-instellingen ook tijdens runtime overschrijven met behulp van de optie bij het --failure-rate
starten van Dev Proxy.
devproxy --failure-rate 100
- Druk op Ctrl + C om dev proxy veilig te stoppen.
Beperking simuleren
Standaard retourneert Dev Proxy een bereik van algemene 400- en 500-foutreacties. U kunt deze foutreacties aanpassen aan uw eigen behoeften.
Dev Proxy maakt gebruik van invoegtoepassingen om verschillende API-gedrag in te schakelen. Standaard schakelen we twee invoegtoepassingen voor u in.
- De invoegtoepassing GenericRandomErrorPlugin biedt de mogelijkheid voor Dev Proxy om te reageren met een foutbericht.
- De invoegtoepassing RetryAfterPlugin biedt de mogelijkheid voor Dev Proxy om een dynamische waarde in de header Retry-After in het foutbericht te injecteren.
We gaan de configuratie wijzigen zodat Dev Proxy altijd een 429 Too Many requests
foutreactie retourneert om beperking te simuleren.
Eerst gaan we de locatie zoeken van het bestand dat de foutdefinities bevat.
- Open het configuratiebestand dev proxy door uit te voeren op de opdrachtregel:
devproxy config
. - Zoek in de
plugins
matrix de vermelding voor de invoegtoepassing GenericRandomErrorPlugin . Noteer de waarde van deconfigSection
eigenschap. - Zoek het object verderop in het
genericRandomErrorPlugin
bestand. Noteer de waarde van deerrorsFile
eigenschap.
Tip
De locatie van het foutenbestand wordt ook weergegeven in de uitvoer wanneer u Dev Proxy start.
- Open
devproxy-errors.json
in de map Dev Proxy-installatie in een teksteditor. - Verwijder alle antwoordvermeldingen in de
responses
matrix, met uitzondering van het429
antwoord.
{
"$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"
}
}
]
}
]
}
- Druk op de opdrachtregel op Enter
devproxy
en druk op Enter om de dev-proxy te starten. - Verzend een aanvraag naar de tijdelijke aanduidingS-API voor JSON vanaf de opdrachtregel en bekijk de uitvoer.
req ╭ GET https://jsonplaceholder.typicode.com/posts
oops ╰ 429 TooManyRequests
- Druk op Ctrl + C om dev proxy veilig te stoppen.
Volgende stap
Meer informatie over het gebruik van Dev Proxy om willekeurige fouten voor uw eigen toepassing te simuleren.