开发代理附带一个 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
}
注意
已注册的声明(例如,、iss、subaud、exp、nbf、iat)jti会自动添加到令牌中。 如果在请求中指定这些声明中的任何一个,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 令牌 |