Condividi tramite


Proxy API

Dev Proxy include un'API Web che consente di interagire con il proxy a livello di codice. L'API è disponibile sulla porta specificata nelle impostazioni proxy.

Swagger

L'API è documentata usando Swagger. È possibile accedere all'interfaccia utente di Swagger passando a http://localhost:<apiPort>/swagger nel browser.

Operazioni

L'elenco seguente mostra le operazioni API disponibili.

GET /proxy

Restituisce un'istanza di ProxyInfo con informazioni sull'istanza di Dev Proxy attualmente in esecuzione.

Esempio: Ottenere informazioni sull'istanza del proxy di sviluppo attualmente in esecuzione

Richiesta:

GET http://localhost:8897/proxy

Risposta:

200 OK

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

POST /proxy

Controlla l'istanza di Dev Proxy attualmente in esecuzione.

Esempio: avviare la registrazione

Richiesta:

POST http://localhost:8897/proxy
content-type: application/json

{
  "recording": true
}

Risposta:

200 OK

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

Esempio: arrestare la registrazione

Richiesta:

POST http://localhost:8897/proxy
content-type: application/json

{
  "recording": false
}

Risposta:

200 OK

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

POST /proxy/jwtToken

Genera un token JSON Web (JWT).

Richiesta:

POST http://localhost:8897/proxy/jwtToken
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
}

Nota

Le attestazioni registrate (ad esempio, iss, subaud, exp, nbf, , iat) jtivengono aggiunte automaticamente al token. Se si specifica una di queste attestazioni nella richiesta, l'API ignora i valori specificati.

Risposta:

200 OK

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

POST /proxy/mockrequest

Genera una richiesta fittizia. Equivalente alla pressione di w nella console in cui è in esecuzione Dev Proxy.

Richiesta:

POST http://localhost:8897/proxy/mockrequest

Risposta:

202 Accepted

GET /proxy/rootCertificate?format=crt

Scarica la chiave pubblica del certificato radice in formato PEM (Privacy Enhanced Mail) usata da Dev Proxy per decrittografare le richieste HTTPS. Questa API è utile quando si vuole considerare attendibile il certificato radice nell'host durante l'esecuzione di Dev Proxy in un contenitore Docker.

Al momento, l'unico formato supportato è crt. L'API restituisce un errore 400 Richiesta non valida se si specifica un altro formato o non si specifica un formato.

Richiesta:

GET http://localhost:8897/proxy/rootCertificate?format=crt

Risposta:

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

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

POST /proxy/stopproxy

Arresta normalmente il proxy di sviluppo.

Richiesta:

POST http://localhost:8897/proxy/stopproxy

Risposta:

202 Accepted

Modelli

ProxyInfo

Informazioni sull'istanza del proxy di sviluppo attualmente in esecuzione.

Proprietà Type Descrizione
recording boolean Indica se il proxy sta registrando le richieste
configFile string Percorso del file di configurazione usato da Dev Proxy (sola lettura)

JwtOptions

Opzioni per la generazione di un token JWT.

Proprietà Type Descrizione
name string Nome dell'utente per cui creare il token
audience string[] Destinatari per cui creare il token
issuer string[] Autorità emittente del token
roles string[] Attestazione del ruolo da aggiungere al token
scopes string[] Attestazione di ambito da aggiungere al token
claims KeyValuePair Attestazioni da aggiungere al token
validFor number Durata (in minuti) per la quale il token è valido
signingKey string Chiave da usare per firmare il token. Deve contenere almeno 32 caratteri. Se non specificato, usa una chiave generata in modo casuale.

JwtInfo

Informazioni su un token JWT.

Proprietà Type Descrizione
token string Token JWT