REST Client扩展通过settings.json中的"rest-client.environmentVariables"字段配置环境变量,支持$shared全局共享及development等多环境定义,变量仅在.http文件中生效且需手动切换环境后重新发送请求。

VSCode 本身不直接管理 API 环境变量,真正起作用的是 REST Client 扩展——它通过独立的环境变量配置机制实现多环境 API 测试,和调试、终端、Python 解释器等场景的环境变量完全隔离。
REST Client 的 environmentVariables 配置位置在哪
这个配置不在 .env 文件或 launch.json 里,而是写在 VSCode 全局或工作区的 settings.json 中:
- 打开设置(
Ctrl+,),搜索REST Client: Environment Variables - 点击
Edit in settings.json,添加"rest-client.environmentVariables"字段 - 结构必须是对象嵌套对象:
$shared是全局共享层,其余键名(如development)是可切换的环境名 - 不要漏掉
$shared大括号外的顶层花括号,否则整个配置被忽略
{{host}} {{port}} 这类占位符为什么不生效
占位符只在 .http 或 .rest 文件中解析,且依赖两个前提:
- 当前文件必须保存为
.http后缀(VSCode 才会启用 REST Client 语法高亮和变量替换) - 状态栏右下角必须显示已激活的环境名(如
[development]),没显示说明环境未选中或配置格式错误 -
{{token}}这类变量若定义在$shared里,所有环境都能用;但若只写在development下,production就访问不到 - 变量名里不能有空格或特殊符号,
api_host可以,api host会导致解析失败
切换环境后请求还是发到旧地址
常见原因不是配置错,而是请求没重新发送:
-
Ctrl+Alt+R是“重新执行当前请求”,不是“刷新环境”——切完环境后必须手动再按一次 - 如果用了
GET https://{{baseUrl}}/users这种间接引用,要确认baseUrl本身是否也定义在当前环境里(例如development中写了"baseUrl": "https://dev.api.com") - 某些老版本 REST Client 不支持嵌套变量展开,比如
{{baseUrl}}/{{version}}可能只替换了第一层,建议拆成独立变量或升级插件 - 检查有没有拼写错误:
{{Host}}和{{host}}在 Windows 上可能都行,但在 Linux/macOS 下严格区分大小写
如何让 API 环境变量和 Python/Node.js 调试环境同步
不能自动同步。REST Client 的变量仅用于 HTTP 请求,对 launch.json 或 .env 文件完全不可见:
- 如果后端是本地启动的 Python 服务,它读取的是
.env或launch.json里的env字段,和 REST Client 无关 - 想复用同一套 host/port,只能手动复制粘贴,或用文档约定变量命名(如统一用
API_HOST),再分别填进不同配置里 - 敏感 token 类变量更要注意:REST Client 配置明文可见,别把生产密钥写死在
settings.json里;调试时用launch.json的env更可控
最易被忽略的一点:REST Client 的环境变量不参与任何构建、打包或代码运行流程,它纯粹是编辑器内发请求的快捷方式。一旦你离开 .http 文件,这些变量就彻底失效了。


















