Sdílet prostřednictvím


Proxy API

Dev Proxy je součástí webového rozhraní API, které umožňuje programově pracovat s proxy serverem. Rozhraní API je k dispozici na portu zadaném v nastavení proxy serveru.

Swagger

Rozhraní API je zdokumentované pomocí Swaggeru. K uživatelskému rozhraní Swaggeru se dostanete tak, že přejdete do http://localhost:<apiPort>/swagger prohlížeče.

Operace

Následující seznam ukazuje dostupné operace rozhraní API.

GET /proxy

Vrátí instanci ProxyInfo s informacemi o aktuálně spuštěné instanci dev proxy serveru.

Příklad: Získání informací o aktuálně spuštěné instanci dev proxy serveru

Požadavek:

GET http://localhost:8897/proxy

Odpověď:

200 OK

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

POST /proxy

Řídí aktuálně spuštěnou instanci dev proxy serveru.

Příklad: spuštění nahrávání

Požadavek:

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

{
  "recording": true
}

Odpověď:

200 OK

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

Příklad: zastavení nahrávání

Požadavek:

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

{
  "recording": false
}

Odpověď:

200 OK

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

POST /proxy/jwtToken

Vygeneruje webový token JSON (JWT).

Požadavek:

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
}

Poznámka:

Registrované deklarace identity (například iss, , sub, audexpnbf, , iat, ), jtise automaticky přidají do tokenu. Pokud v požadavku zadáte některou z těchto deklarací identity, rozhraní API ignoruje zadané hodnoty.

Odpověď:

200 OK

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

POST /proxy/mockrequest

Vyvolá požadavek na napodobení. Ekvivalent stisknutí klávesy w v konzole, ve které běží dev proxy server.

Požadavek:

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

Odpověď:

202 Accepted

GET /proxy/rootCertificate?format=crt

Stáhne veřejný klíč kořenového certifikátu ve formátu PEM (Privacy Enhanced Mail), který dev Proxy používá k dešifrování požadavků HTTPS. Toto rozhraní API je užitečné, když chcete důvěřovat kořenovému certifikátu na hostiteli při spouštění dev proxy v kontejneru Dockeru.

V tuto chvíli je crtjediným podporovaným formátem . Rozhraní API vrátí chybu 400 Chybný požadavek, pokud zadáte jakýkoli jiný formát nebo vůbec nezadáte formát.

Požadavek:

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

Odpověď:

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

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

POST /proxy/stopproxy

Řádně vypne dev proxy server.

Požadavek:

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

Odpověď:

202 Accepted

Modely

ProxyInfo

Informace o aktuálně spuštěné instanci dev proxy.

Vlastnost Type Popis
recording boolean Jestli proxy server aktuálně nahrává požadavky
configFile string Cesta ke konfiguračnímu souboru, který dev Proxy používá (jen pro čtení)

JwtOptions

Možnosti generování tokenu JWT

Vlastnost Type Popis
name string Jméno uživatele pro vytvoření tokenu pro
audience string[] Cílové skupiny pro vytvoření tokenu pro
issuer string[] Vystavitel tokenu
roles string[] Deklarace identity role, která se má přidat do tokenu
scopes string[] Deklarace oboru, která se má přidat k tokenu
claims KeyValuePair Deklarace identity, které se mají přidat do tokenu
validFor number Doba trvání (v minutách), pro kterou je token platný
signingKey string Klíč, který se má použít k podepsání tokenu. Musí mít délku minimálně 32 znaků. Pokud není zadaný, použije náhodně vygenerovaný klíč.

JwtInfo

Informace o tokenu JWT

Vlastnost Type Popis
token string Token JWT