开发代理附带一个 Web API,可用于以编程方式与代理交互。 API 在 代理设置中指定的 IP 地址和端口上可用。
所有 API 操作都需要持有者令牌。 开发代理为每个正在运行的实例生成唯一令牌,并将其存储在仅可供启动实例的用户访问的文件中。 使用 devproxy status 或 devproxy api token. 获取令牌。
CI设置环境变量时,请使用devproxy api token,因为开发代理省略状态和启动输出中的令牌。
在标头中包含 Authorization 令牌:
Authorization: Bearer <token>
没有有效令牌返回 401 Unauthorized的请求。 浏览器请求还必须来自设置中列出的 apiAllowedOrigins 源。 其他源返回 403 Forbidden。
Operations
以下列表显示了可用的 API 操作。
GET /proxy
返回一个实例, ProxyInfo 其中包含有关当前正在运行的开发代理实例的信息。
示例:获取有关当前正在运行的开发代理实例的信息
请求:
GET http://localhost:8897/proxy
Authorization: Bearer <token>
响应:
200 OK
{
"recording": false,
"configFile": "/Users/user/dev-proxy/devproxyrc.json"
}
POST /proxy
控制当前正在运行的开发代理实例。
示例:开始录制
请求:
POST http://localhost:8897/proxy
Authorization: Bearer <token>
content-type: application/json
{
"recording": true
}
响应:
200 OK
{
"recording": true,
"configFile": "/Users/user/dev-proxy/devproxyrc.json"
}
示例:停止录制
请求:
POST http://localhost:8897/proxy
Authorization: Bearer <token>
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
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
}
注意
已注册的声明(例如,、iss、subaud、exp、nbf、iat)jti会自动添加到令牌中。 如果在请求中指定这些声明中的任何一个,API 将忽略你提供的值。
响应:
200 OK
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bmlxdWVfbmFtZSI6IkRldiBQcm94eSIsInN1YiI6IkRldiBQcm94eSIsImp0aSI6IjkyZjM5YzciLCJzY3AiOlsiUG9zdC5SZWFkIiwiUG9zdC5Xcml0ZSJdLCJyb2xlcyI6ImFkbWluIiwiY2xhaW0xIjoidmFsdWUiLCJjbGFpbTIiOiJ2YWx1ZSIsImF1ZCI6Imh0dHBzOi8vbXlzZXJ2ZXIuY29tIiwibmJmIjoxNzI3MTk4MjgyLCJleHAiOjE3MjcyMDE4ODIsImlhdCI6MTcyNzE5ODI4MiwiaXNzIjoiZGV2LXByb3h5In0.E_Gj9E58OrAh9uHgc-TW8DYfq8YHFrhaUTpKA4yXEIg"
}
GET /proxy/logs
返回开发代理日志输出。 等效于 logs 命令。 仅当开发代理在分离模式下运行时,此终结点才可用。 否则,API 返回 404 Not Found。
| 查询参数 | 描述 | 默认 |
|---|---|---|
lines |
要从日志末尾返回的行数 | 50 |
follow |
当 true,将新的日志行作为服务器发送的事件流式传输 |
false |
since |
仅返回自指定时间以来记录的行。 使用持续时间(例如,、30s5m、1h)1d或时间戳(例如) 2026-01-24T14:00:00 |
n/a |
默认情况下,API 以纯文本形式返回日志行。 若要获取日志条目的 JSON 数组,请将 Accept 标头设置为 application/json。 若要将日志行作为服务器发送的事件流式传输,请将Accept标头text/event-stream设置为或设置为 truefollow 。
请求:
GET http://localhost:8897/proxy/logs?lines=10
Authorization: Bearer <token>
响应:
200 OK
content-type: text/plain
[last 10 lines of the Dev Proxy log]
POST /proxy/mockrequest
引发模拟请求。 等效于在运行开发代理的控制台中按 w 。
请求:
POST http://localhost:8897/proxy/mockrequest
Authorization: Bearer <token>
响应:
202 Accepted
GET /proxy/rootCertificate?format=crt
下载开发代理用于解密 HTTPS 请求的 PEM(隐私增强邮件)格式的根证书的公钥。 如果要在 Docker 容器中运行开发代理时信任主机上的根证书,此 API 非常有用。
目前,唯一支持的格式是 crt。 如果指定任何其他格式或根本不指定格式,API 将返回 400 错误请求错误。
请求:
GET http://localhost:8897/proxy/rootCertificate?format=crt
Authorization: Bearer <token>
响应:
content-type: application/x-x509-ca-cert
-----BEGIN CERTIFICATE-----
[base64 encoded certificate]
-----END CERTIFICATE-----
POST /proxy/stopproxy
正常关闭开发代理。
请求:
POST http://localhost:8897/proxy/stopproxy
Authorization: Bearer <token>
响应:
202 Accepted
模型
ProxyInfo
有关当前正在运行的开发代理实例的信息。
| properties | 类型 | 描述 |
|---|---|---|
recording |
boolean |
代理当前是否正在记录请求 |
configFile |
string |
开发代理正在使用的配置文件的路径(只读) |
JwtOptions
用于生成 JWT 令牌的选项。
| properties | 类型 | 描述 |
|---|---|---|
name |
string |
要为其创建令牌的用户的名称 |
audiences |
string[] |
要为其创建令牌的受众 |
issuer |
string |
令牌的颁发者 |
roles |
string[] |
要添加到令牌的角色声明 |
scopes |
string[] |
要添加到令牌的范围声明 |
claims |
KeyValuePair |
要添加到令牌的声明 |
validFor |
number |
令牌有效的持续时间(以分钟为单位) |
signingKey |
string |
用于对令牌进行签名的密钥。 长度必须至少为 32 个字符。 如果未指定,请使用随机生成的密钥。 |
JwtInfo
有关 JWT 令牌的信息。
| properties | 类型 | 描述 |
|---|---|---|
token |
string |
JWT 令牌 |