Freigeben über


Proxy-API

Dev Proxy enthält eine Web-API, mit der Sie programmgesteuert mit dem Proxy interagieren können. Die API ist für den port verfügbar, der in den Proxyeinstellungen angegeben ist.

Swagger

Die API wird mit Swagger dokumentiert. Sie können auf die Benutzeroberfläche von Swagger zugreifen, indem Sie in Ihrem Browser navigieren http://localhost:<apiPort>/swagger .

Vorgänge

In der folgenden Liste sind verfügbare API-Vorgänge aufgeführt.

GET /proxy

Gibt eine Instanz mit ProxyInfo Informationen zur derzeit ausgeführten Dev Proxy-Instanz zurück.

Beispiel: Abrufen von Informationen zur derzeit ausgeführten Dev Proxy-Instanz

Anforderung:

GET http://localhost:8897/proxy

Antwort:

200 OK

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

POST /proxy

Steuert die derzeit ausgeführte Dev Proxy-Instanz.

Beispiel: Starten der Aufzeichnung

Anforderung:

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

{
  "recording": true
}

Antwort:

200 OK

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

Beispiel: Beenden der Aufzeichnung

Anforderung:

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

{
  "recording": false
}

Antwort:

200 OK

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

POST /proxy/jwtToken

Generiert ein JSON-Webtoken (JWT).

Anforderung:

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
}

Hinweis

Registrierte Ansprüche (z. Biss. , , sub, audexp, nbf, iat, jti) werden automatisch zum Token hinzugefügt. Wenn Sie einen dieser Ansprüche in der Anforderung angeben, ignoriert die API die von Ihnen bereitgestellten Werte.

Antwort:

200 OK

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

POST /proxy/mockrequest

Löst eine simulierte Anforderung aus. Entspricht dem Drücken von w in der Konsole, in der Dev Proxy ausgeführt wird.

Anforderung:

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

Antwort:

202 Accepted

GET /proxy/rootCertificate?format=crt

Lädt den öffentlichen Schlüssel des Stammzertifikats im PEM-Format (Privacy Enhanced Mail) herunter, den Dev Proxy zum Entschlüsseln von HTTPS-Anforderungen verwendet. Diese API ist hilfreich, wenn Sie dem Stammzertifikat auf Ihrem Host vertrauen möchten, während Sie Dev Proxy in einem Docker-Container ausführen.

Derzeit ist crtdas einzige unterstützte Format . Die API gibt einen Fehler vom Typ 400 Ungültige Anforderung zurück, wenn Sie ein anderes Format angeben oder überhaupt kein Format angeben.

Anforderung:

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

Antwort:

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

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

POST /proxy/stopproxy

Schalten Sie Dev-Proxy ordnungsgemäß herunter.

Anforderung:

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

Antwort:

202 Accepted

Modelle

ProxyInfo

Informationen zur derzeit ausgeführten Dev Proxy-Instanz.

Eigenschaft Typ Beschreibung
recording boolean Gibt an, ob der Proxy zurzeit Anforderungen aufzeichnet
configFile string Pfad zur Konfigurationsdatei, die Dev Proxy verwendet (schreibgeschützt)

JwtOptions

Optionen zum Generieren eines JWT-Tokens.

Eigenschaft Typ Beschreibung
name string Der Name des Benutzers, für den das Token erstellt werden soll
audience string[] Die Zielgruppen, für die das Token erstellt werden soll
issuer string[] Der Aussteller des Tokens
roles string[] Ein Rollenanspruch, der dem Token hinzugefügt werden soll
scopes string[] Ein Bereichsanspruch, der dem Token hinzugefügt werden soll
claims KeyValuePair Ansprüche, die dem Token hinzugefügt werden sollen
validFor number Die Dauer (in Minuten), für die das Token gültig ist
signingKey string Der Schlüssel, der zum Signieren des Tokens verwendet werden soll. Muss mindestens 32 Zeichen lang sein. Wenn nicht angegeben, wird ein zufällig generierter Schlüssel verwendet.

JwtInfo

Informationen zu einem JWT-Token.

Eigenschaft Typ Beschreibung
token string Das JWT-Token