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 adresie IP i porcie określonym w ustawieniach serwera proxy.

Wszystkie operacje interfejsu API wymagają tokenu elementu nośnego. Serwer proxy deweloperów generuje unikatowy token dla każdego uruchomionego wystąpienia i przechowuje go w pliku dostępnym tylko dla użytkownika, który uruchomił wystąpienie. Pobierz token przy użyciu polecenia devproxy status lub devproxy api token. Gdy zmienna CI środowiskowa jest ustawiona, użyj polecenia devproxy api token , ponieważ serwer proxy deweloperów pomija token ze stanu i danych wyjściowych uruchamiania.

Uwzględnij token w nagłówku Authorization :

Authorization: Bearer <token>

Żądania bez prawidłowego tokenu zwracają wartość 401 Unauthorized. Żądania przeglądarki muszą również pochodzić z źródła wymienionego w ustawieniu apiAllowedOrigins . Inne źródła zwracają wartość 403 Forbidden.

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

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

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

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

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

Reakcja:

202 Accepted

Modele

ProxyInfo

Informacje o aktualnie uruchomionym wystąpieniu serwera proxy dev.

Właściwość Typ 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ść Typ 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ść Typ Opis
token string Token JWT