REST Client 是 VSCode 中最实用稳定的 HTTP 测试插件,将 API 测试变为可版本管理、复用与协作的代码行为;其工程化支持包括变量定义、全局环境切换、请求历史保存等,但需严格遵循 RFC 格式规范。

REST Client 是目前 VSCode 中最实用、最稳定、最贴近开发工作流的 HTTP 测试插件,没有之一。它不是 Postman 的简化版,而是把 API 测试变成可版本管理、可复用、可协作的代码行为——你写的每个 .http 文件,就是一份带执行能力的接口文档。
为什么 REST Client 比 Thunder Client 更适合中大型项目
Thunder Client 轻量、上手快,但变量作用域窄、不支持跨文件环境配置、历史记录难追溯。REST Client 的核心优势在于工程化支持:
- 变量定义(
@host := https://api.dev)必须写在请求前且无缩进,否则整个文件失效 - 支持
rest-client.environment.json全局环境切换,状态栏一键切 dev/staging/prod - 请求历史自动保存到
~/.vscode/extensions/humao.rest-client-*/history.json,可手动清理或导出 - 响应体超 2MB 时默认触发预览模式(
rest-client.previewResponseInUntitledDocument),极易卡死编辑器,建议关掉
HTTP 文件格式踩坑最多的地方
插件不报错,但请求根本发不出——90% 是因为格式没过 RFC 严格校验:
- 每个请求末尾必须是**真正的空行**(即仅含
\n或\r\n),不能有空格、制表符或不可见 Unicode 字符 - 多个请求之间用
###分隔比空行更可靠,尤其当 body 含换行时 -
Content-Type: application/json和 JSON body 之间**必须空一行**,漏了就变成 header 值的一部分 - 变量引用
{{host}}/v1/users中不能有空格,{{ host }}会解析失败
带认证和依赖链的请求怎么写才不乱
单次登录后拿 token 给后续请求用,是常见场景,但 REST Client 不自动传递上下文:
- 用
@token := {{login.response.body.token}}提取上一个请求的响应字段,需确保前一个请求已成功执行 - 提取嵌套字段写法是
{{login.response.body.data.auth.token}},路径错误不会提示,只返回 undefined - 避免把所有请求堆在一个文件里:按功能拆成
auth.http、user.http、order.http,用 VS Code 多标签并排查看 - 敏感值如密码别硬编码,改用
{{$processEnv PASSWORD}},启动 VS Code 前在终端里export PASSWORD=xxx
真正难的不是写对第一个请求,而是让整套测试在 CI 环境下也能跑通——变量来源、响应断言、错误静默这些环节,REST Client 都不介入。它只负责“发出去”和“收回来”,中间那层“是否符合预期”,得靠你用脚本或外部工具补全。


















