Udostępnij przez


Proxy API

Serwer proxy dev jest dostarczany z internetowym interfejsem API, który umożliwia programową interakcję z serwerem proxy. Interfejs API jest dostępny na porcie określonym w ustawieniach serwera proxy.

Swagger

Interfejs API jest udokumentowany przy użyciu struktury Swagger. Dostęp do interfejsu użytkownika struktury Swagger można uzyskać, przechodząc do http://localhost:<apiPort>/swagger strony w przeglądarce.

Operacje

Na poniższej liście przedstawiono dostępne operacje interfejsu API.

GET /proxy

Zwraca wystąpienie obiektu ProxyInfo z informacjami o aktualnie uruchomionym wystąpieniu serwera proxy dewelopera.

Przykład: uzyskiwanie informacji o aktualnie uruchomionym wystąpieniu serwera proxy dev

Żądanie:

GET http://localhost:8897/proxy

Reakcja:

200 OK

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

POST /proxy

Steruje aktualnie uruchomionym wystąpieniem serwera proxy dewelopera.

Przykład: rozpoczynanie nagrywania

Żądanie:

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

{
  "recording": true
}

Reakcja:

200 OK

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

Przykład: zatrzymywanie rejestrowania

Żądanie:

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

{
  "recording": false
}

Reakcja:

200 OK

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

POST /proxy/jwtToken

Generuje token internetowy JSON (JWT).

Żądanie:

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
}

Uwaga

Zarejestrowane oświadczenia (na przykład iss, , sub, audexp, nbf, , iat) jtisą automatycznie dodawane do tokenu. Jeśli określisz dowolne z tych oświadczeń w żądaniu, interfejs API ignoruje podane wartości.

Reakcja:

200 OK

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

POST /proxy/mockrequest

Zgłasza pozorne żądanie. Odpowiednik naciśnięcia w w konsoli, w której działa serwer proxy deweloperów.

Żądanie:

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

Reakcja:

202 Accepted

GET /proxy/rootCertificate?format=crt

Pobiera klucz publiczny certyfikatu głównego w formacie PEM (Privacy Enhanced Mail), którego serwer proxy dewelopera używa do odszyfrowywania żądań HTTPS. Ten interfejs API jest przydatny, gdy chcesz ufać certyfikatowi głównemu na hoście podczas uruchamiania serwera proxy deweloperskiego w kontenerze platformy Docker.

W tej chwili jedynym obsługiwanym formatem jest crt. Interfejs API zwraca błąd 400 Nieprawidłowe żądanie, jeśli określisz inny format lub w ogóle nie określisz formatu.

Żądanie:

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

Reakcja:

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

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

POST /proxy/stopproxy

Bezpiecznie zamyka serwer proxy deweloperów.

Żądanie:

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

Reakcja:

202 Accepted

Modele

ProxyInfo

Informacje o aktualnie uruchomionym wystąpieniu serwera proxy dev.

Właściwość Type Opis
recording boolean Czy serwer proxy aktualnie rejestruje żądania
configFile string Ścieżka do pliku konfiguracji używanego przez serwer proxy dewelopera (tylko do odczytu)

JwtOptions

Opcje generowania tokenu JWT.

Właściwość Type Opis
name string Nazwa użytkownika do utworzenia tokenu dla
audience string[] Odbiorcy do utworzenia tokenu dla
issuer string[] Wystawca tokenu
roles string[] Oświadczenie roli do dodania do tokenu
scopes string[] Oświadczenie zakresu do dodania do tokenu
claims KeyValuePair Oświadczenia do dodania do tokenu
validFor number Czas trwania (w minutach), dla którego token jest prawidłowy
signingKey string Klucz używany do podpisywania tokenu. Musi mieć długość co najmniej 32 znaków. Jeśli nie zostanie określony, użyje losowo wygenerowanego klucza.

JwtInfo

Informacje o tokenie JWT.

Właściwość Type Opis
token string Token JWT