头注入代理README
此VS Code扩展运行本地HTTP代理服务器,允许您将基于路径前缀的请求路由到不同的后端目标URL。对于每个目标,您可以将其配置为自动将自定义标头(如用于授权的API密钥)注入传出请求。
特性
- 本地HTTP代理: 在可配置的本地端口上运行一个简单的HTTP代理服务器。
- 基于路径的路由: 配置多个目标后端。发送到代理的请求(例如。,
http://localhost:PORT/path/prefix/...)基于最长匹配被路由到相应的目标URLpathPrefix. - 集管注入: 对于每个目标,可选地配置API密钥(或任何值)、头名称(例如。,
Authorization,X-API-Key)以及报头值前缀(例如。,ApiKey,Bearer)自动添加到代理到该目标的请求中。 - 配置UI: 通过VS代码活动栏中的专用视图管理您的代理目标。添加、编辑和删除目标配置,无需手动编辑
settings.json。(添加/编辑/删除功能需要Webviews-实现可能正在等待中)。 - 状态栏指示器: 在VS代码状态栏中显示代理服务器的当前状态(ON/OFF,端口)。
- 自动重启: 当相关配置设置更改时,代理会自动重新启动。
*(考虑在此处添加屏幕截图/GIF,显示目标视图和设置)*
需求
- (由
vsce打包工具,并可能用于运行扩展主机)。
扩展设置
此扩展提供了以下设置(可通过UI或 settings.json):
headerInjectorProxy.proxyPort:(整数)代理服务器将侦听的本地端口(默认值:8088).headerInjectorProxy.targets:(对象数组)定义路由和标头注入规则。每个对象都有:
- pathPrefix:(String,必填)代理上的URL路径前缀(例如。, /service1).必须从以下内容开始 /. - targetUrl:(String,必填)完整的目标后端URL(例如。, http://api.service1.com). - apiKey:(String|null,可选)要注入的API密钥(或其他值)。吃起来 null 或者如果该目标不需要注射,则省略。(标记为 secret 在设置中)。 - headerName:(String,可选)要注入的标头的名称(默认值: Authorization). - headerPrefix:(String,可选)要在前面添加的前缀字符串 apiKey 在标题值中(默认值: ApiKey -包括尾随空格)。 - stripPathPrefix:(布尔值,可选)如果设置为 true,the pathPrefix 在将请求转发到之前,将从请求URL中删除 targetUrl例如,如果 pathPrefix 是 /api 和 stripPathPrefix 是 true,请求 http://localhost:PORT/api/users 将转发给 targetUrl/users。(默认值: false).
示例 settings.json 配置:
{
"headerInjectorProxy.proxyPort": 8088,
"headerInjectorProxy.targets": [
{
"pathPrefix": "/service-alpha",
"targetUrl": "http://api.alpha.internal:8000",
"apiKey": "alpha-secret-key-123",
"headerName": "X-Alpha-Key",
"headerPrefix": "",
"stripPathPrefix": false
},
{
"pathPrefix": "/service-beta/v1",
"targetUrl": "https://api.beta.example.com",
"apiKey": "beta-secret-key-456",
"stripPathPrefix": false
},
{
"pathPrefix": "/strip-me",
"targetUrl": "http://downstream.service/basepath",
"apiKey": null,
"stripPathPrefix": true
}
]
}已知问题
- 目前仅代理HTTP请求。代理HTTPS请求 *从* 客户端不受支持。代理 *向* HTTPS目标 *是* 支持。
- 不支持Websocket代理。
- 路径重写(例如,剥离
pathPrefix转发之前)当前未实现;转发完整的请求路径。 - UI中的添加/编辑/删除功能可能正在等待实现。
发布说明
0.0.1
- 初始版本:基本HTTP代理、多目标路由、通过
settings.json. - 添加了UI视图以显示配置的目标。
- 添加了基本的添加/编辑/删除命令(实施待定)。
______________________________________________________________________
享受!
