Proxy API

Le proxy de développement est fourni avec une API web qui vous permet d’interagir avec le proxy par programmation. L’API est disponible sur l’adresse IP et le port spécifiés dans les paramètres du proxy.

Toutes les opérations d’API nécessitent un jeton du porteur. Le proxy de développement génère un jeton unique pour chaque instance en cours d’exécution et le stocke dans un fichier accessible uniquement à l’utilisateur qui a démarré l’instance. Obtenir le jeton à l’aide devproxy status ou devproxy api token. Lorsque la CI variable d’environnement est définie, utilisez devproxy api token parce que le proxy de développement omet le jeton de l’état et de la sortie de démarrage.

Pour utiliser un jeton connu au lieu d’un jeton généré, par exemple quand un autre outil démarre le proxy de développement et appelle son API, définissez la DEV_PROXY_API_TOKEN variable d’environnement avant de démarrer le proxy de développement ou transmettez-le à l’aide de l’option --env . La valeur doit comporter au moins 32 caractères, sans compter le remplissage de fin = et ne peut contenir que des lettres ASCII, des chiffres et des caractères -, , ., _+~, et , éventuellement /suivi du = remplissage. Le proxy de développement supprime les espaces blancs environnants. Si la valeur n’est pas valide, le proxy de développement ne démarre pas et se termine par une erreur. Le proxy de développement stocke toujours le jeton, donc devproxy status, devproxy api tokenet devproxy stop continue de fonctionner.

Incluez le jeton dans l’en-tête Authorization :

Authorization: Bearer <token>

Demandes sans retour 401 Unauthorizedde jeton valide . Les demandes de navigateur doivent également provenir d’une origine répertoriée dans le apiAllowedOrigins paramètre. D’autres origines retournent 403 Forbidden.

Opérations

La liste suivante présente les opérations d’API disponibles.

GET /proxy

Retourne une instance contenant des ProxyInfo informations sur l’instance de proxy de développement en cours d’exécution.

Exemple : Obtenir des informations sur l’instance de proxy de développement en cours d’exécution

Demande :

GET http://localhost:8897/proxy
Authorization: Bearer <token>

Réponse :

200 OK

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

POST /proxy

Contrôle l’instance de proxy de développement en cours d’exécution.

Exemple : démarrer l’enregistrement

Demande :

POST http://localhost:8897/proxy
Authorization: Bearer <token>
content-type: application/json

{
  "recording": true
}

Réponse :

200 OK

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

Exemple : arrêter l’enregistrement

Demande :

POST http://localhost:8897/proxy
Authorization: Bearer <token>
content-type: application/json

{
  "recording": false
}

Réponse :

200 OK

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

POST /proxy/jwtToken

Génère un jeton web JSON (JWT).

Demande :

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
}

Remarque

Les revendications inscrites (par exemple, iss, , subaud, expnbf, iat, , ) jtisont automatiquement ajoutées au jeton. Si vous spécifiez l’une de ces revendications dans la requête, l’API ignore les valeurs que vous fournissez.

Réponse :

200 OK

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

GET /proxy/logs

Retourne la sortie du journal du proxy de développement. Équivalent de la logs commande. Ce point de terminaison est disponible uniquement lorsque le proxy de développement s’exécute en mode détaché. Sinon, l’API retourne 404 Not Found.

Paramètre de requête. Description Default
lines Nombre de lignes à retourner à partir de la fin du journal 50
follow Quand true, diffuse de nouvelles lignes de journal en tant qu’événements envoyés par le serveur false
since Retourne uniquement les lignes journalisées depuis la date et l’heure spécifiées. Utilisez une durée (par exemple, 30s, 5m1h1d) ou une date et une heure ISO 8601 (par exemple, 2026-01-24T14:00:00 ou ).2026-01-24T14:00:00Z Si l’horodatage n’inclut pas de décalage de fuseau horaire, le proxy de développement utilise le fuseau horaire local. n/a

Le since paramètre filtre les lignes de journal par leur date et heure complètes, à la fois lors du retour des lignes de journal et lors de leur diffusion en continu. Le proxy de développement filtre chaque requête au moment où elle a démarré, de sorte qu’une demande qui a démarré avant l’heure spécifiée n’est pas retournée, même si elle s’est terminée ultérieurement.

Par défaut, l’API retourne les lignes de journal sous forme de texte brut. Pour obtenir un tableau JSON d’entrées de journal, définissez l’en-tête Acceptapplication/jsonsur . Pour diffuser des lignes de journal en tant qu’événements envoyés par le serveur, définissez l’en-tête Accepttext/event-stream sur ou sur followtrue.

Demande :

GET http://localhost:8897/proxy/logs?lines=10
Authorization: Bearer <token>

Réponse :

200 OK
content-type: text/plain

[last 10 lines of the Dev Proxy log]

POST /proxy/mockrequest

Déclenche une demande fictif. Équivaut à appuyer sur w dans la console où le proxy de développement est en cours d’exécution. L’API répond une fois la demande fictif terminée.

Demande :

POST http://localhost:8897/proxy/mockrequest
Authorization: Bearer <token>

Réponse :

204 No Content

GET /proxy/rootCertificate?format=crt

Télécharge la clé publique du certificat racine au format PEM (Privacy Enhanced Mail) utilisé par le proxy de développement pour déchiffrer les requêtes HTTPS. Cette API est utile lorsque vous souhaitez approuver le certificat racine sur votre hôte lors de l’exécution du proxy de développement dans un conteneur Docker.

À ce stade, le seul format pris en charge est crt. L’API retourne une erreur de requête incorrecte 400 si vous spécifiez un autre format ou si vous ne spécifiez pas du tout un format.

Demande :

GET http://localhost:8897/proxy/rootCertificate?format=crt
Authorization: Bearer <token>

Réponse :

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

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

POST /proxy/stopproxy

Ferme normalement le proxy de développement.

Demande :

POST http://localhost:8897/proxy/stopproxy
Authorization: Bearer <token>

Réponse :

202 Accepted

Modèles

ProxyInfo

Informations sur l’instance de proxy de développement en cours d’exécution.

Propriété Type Description
recording boolean Indique si le proxy enregistre actuellement les demandes
configFile string Chemin d’accès au fichier de configuration utilisé par le proxy de développement (en lecture seule)

JwtOptions

Options de génération d’un jeton JWT.

Propriété Type Description
name string Nom de l’utilisateur à créer le jeton pour
audiences string[] Audiences à créer le jeton pour
issuer string Émetteur du jeton
roles string[] Revendication de rôle à ajouter au jeton
scopes string[] Revendication d’étendue à ajouter au jeton
claims KeyValuePair Revendications à ajouter au jeton
validFor number Durée (en minutes) pour laquelle le jeton est valide
signingKey string Clé à utiliser pour signer le jeton. Doit comporter au moins 32 caractères. S’il n’est pas spécifié, utilise une clé générée de manière aléatoire.

JwtInfo

Informations sur un jeton JWT.

Propriété Type Description
token string Jeton JWT