代理 API

开发代理附带一个 Web API,可用于以编程方式与代理交互。 API 在代理设置中指定的端口上可用。

Swagger

API 使用 Swagger 进行记录。 可以通过在浏览器中导航到 http://localhost:<apiPort>/swagger Swagger UI 来访问 Swagger UI。

Operations

以下列表显示了可用的 API 操作。

GET /proxy

返回一个实例, ProxyInfo 其中包含有关当前正在运行的开发代理实例的信息。

示例:获取有关当前正在运行的开发代理实例的信息

请求:

GET http://localhost:8897/proxy

响应:

200 OK

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

POST /proxy

控制当前正在运行的开发代理实例。

示例:开始录制

请求:

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

{
  "recording": true
}

响应:

200 OK

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

示例:停止录制

请求:

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

{
  "recording": false
}

响应:

200 OK

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

POST /proxy/jwtToken

生成 JSON Web 令牌(JWT)。

请求:

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
}

注意

已注册的声明(例如,、isssubaudexpnbfiatjti会自动添加到令牌中。 如果在请求中指定这些声明中的任何一个,API 将忽略你提供的值。

响应:

200 OK

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

POST /proxy/mockrequest

引发模拟请求。 等效于在运行开发代理的控制台中按 w

请求:

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

响应:

202 Accepted

GET /proxy/rootCertificate?format=crt

下载开发代理用于解密 HTTPS 请求的 PEM(隐私增强邮件)格式的根证书的公钥。 如果要在 Docker 容器中运行开发代理时信任主机上的根证书,此 API 非常有用。

目前,唯一支持的格式是 crt。 如果指定任何其他格式或根本不指定格式,API 将返回 400 错误请求错误。

请求:

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

响应:

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

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

POST /proxy/stopproxy

正常关闭开发代理。

请求:

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

响应:

202 Accepted

模型

ProxyInfo

有关当前正在运行的开发代理实例的信息。

properties 类型​​ 描述
recording boolean 代理当前是否正在记录请求
configFile string 开发代理正在使用的配置文件的路径(只读)

JwtOptions

用于生成 JWT 令牌的选项。

properties 类型​​ 描述
name string 要为其创建令牌的用户的名称
audience string[] 要为其创建令牌的受众
issuer string[] 令牌的颁发者
roles string[] 要添加到令牌的角色声明
scopes string[] 要添加到令牌的范围声明
claims KeyValuePair 要添加到令牌的声明
validFor number 令牌有效的持续时间(以分钟为单位)
signingKey string 用于对令牌进行签名的密钥。 长度必须至少为 32 个字符。 如果未指定,请使用随机生成的密钥。

JwtInfo

有关 JWT 令牌的信息。

properties 类型​​ 描述
token string JWT 令牌