Proxy-API

Dev Proxy wordt geleverd met een web-API waarmee u programmatisch met de proxy kunt werken. De API is beschikbaar op het IP-adres en de poort die is opgegeven in de proxy-instellingen.

Voor alle API-bewerkingen is een Bearer-token vereist. Dev Proxy genereert een uniek token voor elk actief exemplaar en slaat het op in een bestand dat alleen toegankelijk is voor de gebruiker die het exemplaar heeft gestart. Haal het token op met behulp van devproxy status of devproxy api token. Wanneer de CI omgevingsvariabele is ingesteld, gebruikt devproxy api token u deze omdat Dev Proxy het token weglaat uit de status en opstartuitvoer.

Als u een bekend token wilt gebruiken in plaats van een gegenereerd token, bijvoorbeeld wanneer een ander hulpprogramma Dev Proxy start en de BIJBEHORENDE API aanroept, stelt u de DEV_PROXY_API_TOKEN omgevingsvariabele in voordat u Dev Proxy start of doorgeeft met behulp van de --env optie. De waarde moet ten minste 32 tekens lang zijn, niet opvulling = tellen en mag alleen ASCII-letters, cijfers en de tekens -, , ._, ~, , en +/, eventueel gevolgd door = opvulling, bevatten. Dev Proxy trimt omringende witruimte. Als de waarde niet geldig is, wordt dev proxy niet gestart en afgesloten met een fout. Dev Proxy slaat het token nog steeds op, dus devproxy statusdevproxy api tokenen devproxy stop blijf werken.

Neem het token op in de Authorization koptekst:

Authorization: Bearer <token>

Aanvragen zonder geldig token retourneren 401 Unauthorized. Browseraanvragen moeten ook afkomstig zijn van een oorsprong die wordt vermeld in de apiAllowedOrigins instelling. Andere oorsprongen retourneren 403 Forbidden.

Operations

De volgende lijst bevat beschikbare API-bewerkingen.

GET /proxy

Retourneert een exemplaar van ProxyInfo met informatie over het momenteel actieve Dev Proxy-exemplaar.

Voorbeeld: Informatie ophalen over het momenteel actieve Dev Proxy-exemplaar

Aanvraag:

GET http://localhost:8897/proxy
Authorization: Bearer <token>

Respons:

200 OK

{
  "recording": false,
  "configFile": "/Users/user/dev-proxy/devproxyrc.json"
}

POST /proxy

Hiermee bepaalt u het momenteel actieve Dev Proxy-exemplaar.

Voorbeeld: opname starten

Aanvraag:

POST http://localhost:8897/proxy
Authorization: Bearer <token>
content-type: application/json

{
  "recording": true
}

Respons:

200 OK

{
  "recording": true,
  "configFile": "/Users/user/dev-proxy/devproxyrc.json"
}

Voorbeeld: opname stoppen

Aanvraag:

POST http://localhost:8897/proxy
Authorization: Bearer <token>
content-type: application/json

{
  "recording": false
}

Respons:

200 OK

{
  "recording": false,
  "configFile": "/Users/user/dev-proxy/devproxyrc.json"
}

POST /proxy/jwtToken

Hiermee wordt een JSON-webtoken (JWT) gegenereerd.

Aanvraag:

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
}

Notitie

Geregistreerde claims (bijvoorbeeldiss, , subaud, exp, , nbf, , iat) jtiworden automatisch toegevoegd aan het token. Als u een van deze claims in de aanvraag opgeeft, negeert de API de waarden die u opgeeft.

Respons:

200 OK

{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bmlxdWVfbmFtZSI6IkRldiBQcm94eSIsInN1YiI6IkRldiBQcm94eSIsImp0aSI6IjkyZjM5YzciLCJzY3AiOlsiUG9zdC5SZWFkIiwiUG9zdC5Xcml0ZSJdLCJyb2xlcyI6ImFkbWluIiwiY2xhaW0xIjoidmFsdWUiLCJjbGFpbTIiOiJ2YWx1ZSIsImF1ZCI6Imh0dHBzOi8vbXlzZXJ2ZXIuY29tIiwibmJmIjoxNzI3MTk4MjgyLCJleHAiOjE3MjcyMDE4ODIsImlhdCI6MTcyNzE5ODI4MiwiaXNzIjoiZGV2LXByb3h5In0.E_Gj9E58OrAh9uHgc-TW8DYfq8YHFrhaUTpKA4yXEIg"
}

GET /proxy/logs

Retourneert de uitvoer van het Dev Proxy-logboek. Equivalent van de logs opdracht. Dit eindpunt is alleen beschikbaar wanneer Dev Proxy wordt uitgevoerd in de losgekoppelde modus. Anders retourneert 404 Not Foundde API .

Zoekopdrachtparameter Description Default
lines Aantal regels dat moet worden geretourneerd vanaf het einde van het logboek 50
follow Wanneer trueworden nieuwe logboeklijnen gestreamd als door de server verzonden gebeurtenissen false
since Retourneert alleen regels die zijn vastgelegd sinds de opgegeven datum en tijd. Gebruik een duur (bijvoorbeeld , , , 1d) of een ISO 8601-datum en -tijd (bijvoorbeeld 2026-01-24T14:00:00 ).2026-01-24T14:00:00Z1h5m30s Als de tijdstempel geen tijdzoneverschil bevat, gebruikt Dev Proxy de lokale tijdzone. n/a

De since parameter filtert logboeklijnen op de volledige datum en tijd, zowel bij het retourneren van logboeklijnen als bij het streamen ervan. Dev Proxy filtert elke aanvraag op het moment dat deze is gestart, dus een aanvraag die is gestart voordat de opgegeven tijd niet wordt geretourneerd, zelfs niet als deze later is voltooid.

Standaard retourneert de API de logboeklijnen als tekst zonder opmaak. Als u een JSON-matrix met logboekvermeldingen wilt ophalen, stelt u de Accept header in op application/json. Als u logboeklijnen wilt streamen als gebeurtenissen die door de server zijn verzonden, stelt u de Accept header text/event-stream in op of stelt u deze in follow op true.

Aanvraag:

GET http://localhost:8897/proxy/logs?lines=10
Authorization: Bearer <token>

Respons:

200 OK
content-type: text/plain

[last 10 lines of the Dev Proxy log]

POST /proxy/mockrequest

Er wordt een mock-aanvraag ingediend. Equivalent van drukken op w in de console waarop Dev Proxy wordt uitgevoerd. De API reageert nadat de mock-aanvraag is voltooid.

Aanvraag:

POST http://localhost:8897/proxy/mockrequest
Authorization: Bearer <token>

Respons:

204 No Content

GET /proxy/rootCertificate?format=crt

Hiermee downloadt u de openbare sleutel van het basiscertificaat in PEM-indeling (Privacy Enhanced Mail) die door Dev Proxy wordt gebruikt om HTTPS-aanvragen te ontsleutelen. Deze API is handig als u het basiscertificaat op uw host wilt vertrouwen tijdens het uitvoeren van Dev Proxy in een Docker-container.

Op dit moment is crtde enige ondersteunde indeling. De API retourneert een fout met 400 ongeldige aanvragen als u een andere indeling opgeeft of helemaal geen indeling opgeeft.

Aanvraag:

GET http://localhost:8897/proxy/rootCertificate?format=crt
Authorization: Bearer <token>

Respons:

content-type: application/x-x509-ca-cert

-----BEGIN CERTIFICATE-----
[base64 encoded certificate]
-----END CERTIFICATE-----

POST /proxy/stopproxy

De dev-proxy wordt op een juiste manier afgesloten.

Aanvraag:

POST http://localhost:8897/proxy/stopproxy
Authorization: Bearer <token>

Respons:

202 Accepted

Modellen

ProxyInfo

Informatie over het momenteel actieve Dev Proxy-exemplaar.

Eigenschap Type Description
recording boolean Of de proxy momenteel aanvragen registreert
configFile string Pad naar het configuratiebestand dat dev proxy gebruikt (alleen-lezen)

JwtOptions

Opties voor het genereren van een JWT-token.

Eigenschap Type Description
name string De naam van de gebruiker voor het maken van het token
audiences string[] De doelgroepen voor het maken van het token voor
issuer string De uitgever van het token
roles string[] Een rolclaim die moet worden toegevoegd aan het token
scopes string[] Een bereikclaim die moet worden toegevoegd aan het token
claims KeyValuePair Claims om toe te voegen aan het token
validFor number De duur (in minuten) waarvoor het token geldig is
signingKey string De sleutel die moet worden gebruikt om het token te ondertekenen. Moet minstens 32 tekens lang zijn. Als dit niet is opgegeven, wordt een willekeurig gegenereerde sleutel gebruikt.

JwtInfo

Informatie over een JWT-token.

Eigenschap Type Description
token string Het JWT-token