Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Important
Sedan v3.3.1 kräver Authorization: Bearer <token> varje Dev Proxy API-begäran huvudet. Begäranden utan giltig token returnerar 401 Unauthorized.
Dev Proxy levereras med ett webb-API som gör att du kan interagera med proxyn programmatiskt. API:et är tillgängligt på den IP-adress och port som anges i proxyinställningarna.
Dev Proxy genererar en unik token för varje instans som körs och lagrar den i en fil som endast är tillgänglig för den användare som startade instansen. Hämta token med eller devproxy statusdevproxy api token.
CI När miljövariabeln har angetts använder du devproxy api token eftersom Dev Proxy utelämnar token från status och startutdata.
Om du vill använda en känd token i stället för en genererad, till exempel när ett annat verktyg startar Dev Proxy och anropar dess API, anger DEV_PROXY_API_TOKEN du miljövariabeln innan du startar Dev Proxy eller skickar den med hjälp av --env alternativet . Värdet måste vara minst 32 tecken långt, inte räkna avslutande = utfyllnad och får endast innehålla ASCII-bokstäver, siffror och tecknen -, ., _, ~, +och /, eventuellt följt av = utfyllnad. Dev Proxy trimmar omgivande blanksteg. Om värdet inte är giltigt startar inte Dev Proxy och avslutas inte med ett fel. Dev Proxy lagrar fortfarande token, så devproxy status, devproxy api tokenoch devproxy stop fortsätter att fungera.
Inkludera token i Authorization rubriken:
Authorization: Bearer <token>
Begäranden utan giltig token returnerar 401 Unauthorized. Webbläsarbegäranden måste också komma från ett ursprung som anges i inställningen apiAllowedOrigins . Andra ursprung returnerar 403 Forbidden.
Operations
I följande lista visas tillgängliga API-åtgärder.
GET /proxy
Returnerar en instans av ProxyInfo med information om den dev proxyinstans som körs.
Exempel: Hämta information om den dev proxyinstans som körs för tillfället
Begäran:
GET http://localhost:8897/proxy
Authorization: Bearer <token>
Svar:
200 OK
{
"recording": false,
"configFile": "/Users/user/dev-proxy/devproxyrc.json"
}
POST /proxy
Styr den dev proxyinstans som körs just nu. Information om hur du startar och slutar spela in från ett skript eller en CI-pipeline finns i Spela in från skript och CI.
Exempel: starta inspelning
Begäran:
POST http://localhost:8897/proxy
Authorization: Bearer <token>
content-type: application/json
{
"recording": true
}
Svar:
200 OK
{
"recording": true,
"configFile": "/Users/user/dev-proxy/devproxyrc.json"
}
Exempel: stoppa inspelning
Begäran:
POST http://localhost:8897/proxy
Authorization: Bearer <token>
content-type: application/json
{
"recording": false
}
Svar:
200 OK
{
"recording": false,
"configFile": "/Users/user/dev-proxy/devproxyrc.json"
}
Stoppa inspelning och generera rapporter
Att stoppa inspelningen gör mer än att sluta samla in begäranden. När du skickar {"recording": false} medan Dev Proxy spelas in skickar Dev Proxy de inspelade begärandena till alla aktiverade plugin-program i den ordning de anges i konfigurationsfilen. Detta är samma sak som att trycka på s i konsolen där Dev Proxy körs. Under det här steget:
- Rapport-plugin-program analyserar de registrerade begärandena och skapar rapporter.
-
Reportrar konverterar rapporterna till filer. Varje reporter skriver en fil för varje rapport med namnet
<plugin>_<reporter>.<extension>, till exempelExecutionSummaryPlugin_MarkdownReporter.md.<plugin>är namnet på plugin-instansen som producerade rapporten och<reporter>är namnet på reporterinstansen. Om det redan finns en fil med det namnet lägger reportern till en tidsstämpel,ExecutionSummaryPlugin_MarkdownReporter_20261105114500.mdtill exempel . - Generator-plugin-program, som
OpenApiSpecGeneratorPlugin, skriver de filer som de genererar.
Dev Proxy skriver dessa filer till den aktuella arbetskatalogen, som är den katalog som du startade Dev Proxy från.
API:et svarar när alla plugin-program har slutfört bearbetningen av de registrerade begärandena. Beroende på vilka plugin-program du använder, till exempel plugin-program som anropar en språkmodell, kan det här steget ta en stund, så se till att HTTP-klienten inte överskrider tidsgränsen för tidigt. När svaret kommer skrivs rapportfilerna till disken.
Dev Proxy loggar även förloppet för bearbetning av registrerade begäranden:
| Loggmeddelande | Meaning |
|---|---|
DONE |
Alla plugin-program har bearbetat de inspelade begärandena. |
No requests to process |
Ett plugin-program hittade inga registrerade begäranden att analysera. |
An error occurred in a plugin |
Ett plugin-program misslyckades. Dev Proxy fortsätter med nästa plugin-program och loggar DONE när alla plugin-program är klara. |
Om Dev Proxy inte spelas in när du skickar {"recording": false}bearbetar Dev Proxy inga begäranden, skriver inga filer och loggar DONEinte .
Tip
Om du slutar använda POST /proxy/stopproxy Dev Proxy när den spelas in bearbetar Dev Proxy även de inspelade begärandena innan den avslutas. Det API:et svarar dock omedelbart, så du måste vänta tills Dev Proxy-processen avslutas för att veta att rapporterna är klara. Om du vill veta exakt när rapporterna är klara slutar du spela in först, väntar på svaret och stoppar sedan Dev Proxy.
Ett fullständigt skript som startar Dev Proxy, styr inspelningen via API:et och väntar på att Dev Proxy ska slutföras finns i Använda Dev Proxy i CI/CD-scenarier.
POST /proxy/jwtToken
Genererar en JSON-webbtoken (JWT).
Begäran:
POST http://localhost:8897/proxy/jwtToken
Authorization: Bearer <token>
Content-Type: application/json
{
"name": "Dev Proxy",
"audiences": [
"https://myserver.com"
],
"issuer": "dev-proxy",
"roles": [
"admin"
],
"scopes": [
"Post.Read",
"Post.Write"
],
"claims": {
"claim1": "value",
"claim2": "value"
},
"validFor": 60
}
Kommentar
Registrerade anspråk (till exempel iss, sub, aud, exp, nbf, , iat) jtiläggs automatiskt till i token. Om du anger något av dessa anspråk i begäran ignorerar API:et de värden som du anger.
Svar:
200 OK
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bmlxdWVfbmFtZSI6IkRldiBQcm94eSIsInN1YiI6IkRldiBQcm94eSIsImp0aSI6IjkyZjM5YzciLCJzY3AiOlsiUG9zdC5SZWFkIiwiUG9zdC5Xcml0ZSJdLCJyb2xlcyI6ImFkbWluIiwiY2xhaW0xIjoidmFsdWUiLCJjbGFpbTIiOiJ2YWx1ZSIsImF1ZCI6Imh0dHBzOi8vbXlzZXJ2ZXIuY29tIiwibmJmIjoxNzI3MTk4MjgyLCJleHAiOjE3MjcyMDE4ODIsImlhdCI6MTcyNzE5ODI4MiwiaXNzIjoiZGV2LXByb3h5In0.E_Gj9E58OrAh9uHgc-TW8DYfq8YHFrhaUTpKA4yXEIg"
}
GET /proxy/logs
Returnerar utdata från Dev Proxy-loggen.
logs Motsvarande kommandot. Den här slutpunkten är endast tillgänglig när Dev Proxy körs i frånkopplat läge. Annars returnerar 404 Not FoundAPI:et .
| Frågeparameter | Beskrivning | Standardvärde |
|---|---|---|
lines |
Antal rader som ska returneras från slutet av loggen | 50 |
follow |
När trueströmmar nya loggrader som server-skickade händelser |
false |
since |
Returnerar endast rader som loggats sedan det angivna datumet och tiden. Använd en varaktighet (till exempel 30s, , 5m1h, 1d) eller ett ISO 8601-datum och tid (till exempel 2026-01-24T14:00:00 eller 2026-01-24T14:00:00Z). Om tidsstämpeln inte innehåller en tidszonsförskjutning använder Dev Proxy den lokala tidszonen. |
n/a |
Parametern since filtrerar loggrader efter deras fullständiga datum och tid, både när loggrader returneras och när de strömmas. Dev Proxy filtrerar varje begäran efter den tidpunkt då den startade, så en begäran som startades före den angivna tiden returneras inte, även om den har slutförts senare.
Som standard returnerar API:et loggraderna som oformaterad text. Om du vill hämta en JSON-matris med loggposter anger du Accept rubriken till application/json. Om du vill strömma loggrader som server skickade händelser anger du Accept rubriken till text/event-stream eller anger follow till true.
Begäran:
GET http://localhost:8897/proxy/logs?lines=10
Authorization: Bearer <token>
Svar:
200 OK
content-type: text/plain
[last 10 lines of the Dev Proxy log]
POST /proxy/mockrequest
Skapar en falsk begäran. Motsvarande att trycka w i konsolen där Dev Proxy körs. API:et svarar när den falska begäran har slutförts.
Begäran:
POST http://localhost:8897/proxy/mockrequest
Authorization: Bearer <token>
Svar:
204 No Content
GET /proxy/rootCertificate?format=crt
Laddar ned den offentliga nyckeln för rotcertifikatet i PEM-format (Privacy Enhanced Mail) som Dev Proxy använder för att dekryptera HTTPS-begäranden. Det här API:et är användbart när du vill lita på rotcertifikatet på värden när du kör Dev Proxy i en Docker-container.
För närvarande är crtdet enda format som stöds . API:et returnerar ett fel med 400 felaktig begäran om du anger något annat format eller inte anger något format alls.
Begäran:
GET http://localhost:8897/proxy/rootCertificate?format=crt
Authorization: Bearer <token>
Svar:
content-type: application/x-x509-ca-cert
-----BEGIN CERTIFICATE-----
[base64 encoded certificate]
-----END CERTIFICATE-----
POST /proxy/stopproxy
Stänger av Dev Proxy på ett korrekt sätt. Om Dev Proxy spelas in stoppas inspelningen och genererar rapporter innan den avslutas. API:et svarar omedelbart innan Dev Proxy avslutas.
Begäran:
POST http://localhost:8897/proxy/stopproxy
Authorization: Bearer <token>
Svar:
202 Accepted
Dev Proxy returneras 202 Accepted så snart den börjar stängas av. Svaret innebär inte att Dev Proxy har avslutats. Under avstängningen: Dev Proxy:
- Slutar acceptera nya proxybegäranden. Om Dev Proxy har registrerats som systemproxy återställs de tidigare systemproxyinställningarna. Dev Proxy väntar upp till fem sekunder på att öppna anslutningar ska stängas och stänger sedan eventuella återstående anslutningar.
- Stoppar inspelningen, om inspelningen är på och kör plugin-programmet för rapportering på de inspelade begärandena, på samma sätt som när du slutar spela in själv. När plugin-programmet är klart skriver Dev Proxy rapporterna och loggarna
DONE. - Tar bort instansinformationen och
devproxy statusdevproxy stopvisar den inte längre. - Avslutar med slutkod
0.
Dev Proxy tar inte bort rotcertifikatet från det betrodda certifikatarkivet vid avstängning. Om du vill ta bort certifikatet använder du cert remove.
Avstängningen tar vanligtvis några sekunder. Det kan ta längre tid när du rapporterar plugin-program bearbetar en stor inspelning. När avstängningen har startat kan API:et inte längre nås, så avsök inte API:et för att kontrollera om Dev Proxy har avslutats. Använd i stället något av följande alternativ:
- Vänta tills process-ID (PID) som
devproxy --detachskrivs ut avslutas. - Kör
devproxy status --pid <pid>tills den returnerar slutkoden1, vilket innebär att instansen inte längre körs. Mer information finns i status. - Om du spelade in kontrollerar du Dev Proxy-loggen för meddelandet
DONE, som Dev Proxy loggar efter att plugin-programmet för rapportering har slutförts. Ett exempel finns i Använda Dev Proxy i CI/CD-scenarier.
Om du till exempel vill vänta tills en fristående Dev Proxy-instans avslutas i Linux eller macOS:
# DEVPROXY_PID is the PID that devproxy --detach printed
# TOKEN is the API token from devproxy api token
curl -X POST http://localhost:8897/proxy/stopproxy -H "Authorization: Bearer $TOKEN"
while ./devproxy/devproxy status --pid $DEVPROXY_PID > /dev/null 2>&1; do
sleep 1
done
Undvik att avsluta Dev Proxy-processen med kraft, till exempel med hjälp kill -9av . När du avslutar processen på det här sättet rensar Dev Proxy inte inställningarna för inspelning eller återställning av systemproxy. Om du vill stoppa Dev Proxy från kommandoraden använder du stop, som anropar det här API:et och väntar upp till 10 sekunder innan Dev Proxy avslutas.
Modeller
ProxyInfo
Information om den dev proxy-instans som körs just nu.
| Property | Type | Beskrivning |
|---|---|---|
recording |
boolean |
Om proxyn för närvarande registrerar begäranden |
configFile |
string |
Sökväg till konfigurationsfilen som Dev Proxy använder (skrivskyddad) |
JwtOptions
Alternativ för att generera en JWT-token.
| Property | Type | Beskrivning |
|---|---|---|
name |
string |
Namnet på användaren som du vill skapa token för |
audiences |
string[] |
Målgrupperna som du vill skapa token för |
issuer |
string |
Utfärdaren av token |
roles |
string[] |
Ett rollanspråk att lägga till i token |
scopes |
string[] |
Ett omfångsanspråk som ska läggas till i token |
claims |
KeyValuePair |
Anspråk att lägga till i token |
validFor |
number |
Varaktigheten (i minuter) för vilken token är giltig |
signingKey |
string |
Nyckeln som ska användas för att signera token. Måste vara minst 32 tecken långt. Om det inte anges använder du en slumpmässigt genererad nyckel. |
JwtInfo
Information om en JWT-token.
| Property | Type | Beskrivning |
|---|---|---|
token |
string |
JWT-token |