Compartir a través de


Proxy API

El proxy de desarrollo incluye una API web que permite interactuar con el proxy mediante programación. La API está disponible en el puerto especificado en la configuración del proxy.

Swagger

La API se documenta mediante Swagger. Para acceder a la interfaz de usuario de Swagger, vaya a http://localhost:<apiPort>/swagger en el explorador.

Operations

En la lista siguiente se muestran las operaciones de API disponibles.

GET /proxy

Devuelve una instancia de ProxyInfo con información sobre la instancia de Proxy de desarrollo que se está ejecutando actualmente.

Ejemplo: Obtención de información sobre la instancia de Proxy de desarrollo actualmente en ejecución

Solicitud:

GET http://localhost:8897/proxy

Respuesta:

200 OK

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

POST /proxy

Controla la instancia del proxy de desarrollo que se está ejecutando actualmente.

Ejemplo: iniciar la grabación

Solicitud:

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

{
  "recording": true
}

Respuesta:

200 OK

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

Ejemplo: detener la grabación

Solicitud:

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

{
  "recording": false
}

Respuesta:

200 OK

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

POST /proxy/jwtToken

Genera un token web JSON (JWT).

Solicitud:

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
}

Nota:

Las notificaciones registradas (por ejemplo, iss, sub, expaud, , nbf, , iat) jtise agregan automáticamente al token. Si especifica alguna de estas notificaciones en la solicitud, la API omite los valores que proporcione.

Respuesta:

200 OK

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

POST /proxy/mockrequest

Genera una solicitud ficticia. Equivalente a presionar w en la consola donde se ejecuta El proxy de desarrollo.

Solicitud:

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

Respuesta:

202 Accepted

GET /proxy/rootCertificate?format=crt

Descarga la clave pública del certificado raíz en formato PEM (correo mejorado de privacidad) que el proxy de desarrollo usa para descifrar las solicitudes HTTPS. Esta API es útil cuando desea confiar en el certificado raíz en el host mientras ejecuta proxy de desarrollo en un contenedor de Docker.

En este momento, el único formato admitido es crt. La API devuelve un error de solicitud incorrecta 400 si especifica algún otro formato o no especifica un formato en absoluto.

Solicitud:

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

Respuesta:

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

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

POST /proxy/stopproxy

Cierra correctamente el proxy de desarrollo.

Solicitud:

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

Respuesta:

202 Accepted

Models

ProxyInfo

Información sobre la instancia del proxy de desarrollo que se está ejecutando actualmente.

Propiedad Tipo Descripción
recording boolean Si el proxy está grabando solicitudes actualmente
configFile string Ruta de acceso al archivo de configuración que usa el proxy de desarrollo (solo lectura)

JwtOptions

Opciones para generar un token JWT.

Propiedad Tipo Descripción
name string Nombre del usuario para el que se va a crear el token
audience string[] Audiencias para las que se va a crear el token
issuer string[] Emisor del token
roles string[] Una notificación de rol que se va a agregar al token
scopes string[] Una notificación de ámbito que se va a agregar al token
claims KeyValuePair Notificaciones que se van a agregar al token
validFor number Duración (en minutos) para la que el token es válido
signingKey string Clave que se va a usar para firmar el token. Debe tener al menos 32 caracteres. Si no se especifica, usa una clave generada aleatoriamente.

JwtInfo

Información sobre un token JWT.

Propiedad Tipo Descripción
token string Token JWT