Proxy API

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

Tutte le operazioni API richiedono un token di connessione. Dev Proxy genera un token univoco per ogni istanza in esecuzione e lo archivia in un file accessibile solo all'utente che ha avviato l'istanza. Ottenere il token usando devproxy status o devproxy api token. Quando la CI variabile di ambiente è impostata, usare devproxy api token perché Dev Proxy omette il token dall'output di stato e avvio.

Includere il token nell'intestazione Authorization :

Authorization: Bearer <token>

Le richieste senza un token valido restituiscono 401 Unauthorized. Le richieste del browser devono provenire anche da un'origine elencata nell'impostazione apiAllowedOrigins . Altre origini restituiscono 403 Forbidden.

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
Authorization: Bearer <token>

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
Authorization: Bearer <token>
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
Authorization: Bearer <token>
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
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
}

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
Authorization: Bearer <token>

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
Authorization: Bearer <token>

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
Authorization: Bearer <token>

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