VSCode通过REST Client、Thunder Client和cURL三种方式实现API测试:REST Client轻量快捷但无状态管理;Thunder Client支持环境切换、自动鉴权和简易断言;cURL配合终端与jq适合临时验证和CI场景。

VSCode 本身不内置 API 测试功能,但通过轻量、可组合的扩展(而非安装 Postman 类重型工具),能高效完成绝大多数接口调试任务。关键在于选对扩展、配好环境、避免硬编码敏感信息。
用 REST Client 扩展直接发请求
这是 VSCode 中最接近“开箱即用”的 API 调试方式:在 .http 或 .rest 文件里写请求,按 Ctrl+Alt+R(Windows/Linux)或 Cmd+Alt+R(macOS)即可执行。
- 安装官方扩展
REST Client(作者:Huachao Mao) - 新建文件,保存为
test.http,内容示例如下:
GET https://jsonplaceholder.typicode.com/posts/1 Content-Type: application/json
执行后右侧会弹出响应面板,支持查看状态码、Headers、JSON 格式化结果。
- 支持变量:用
{{baseUrl}}+@baseUrl = https://api.example.com定义顶部变量,便于多环境切换 - 不支持 cookie 持久化或登录态自动管理,需手动提取
Set-Cookie并在后续请求中加Cookie: ... - 无法做断言或自动化校验,纯手工验证响应内容
用 Thunder Client(轻量版 Postman)做带状态的调试
Thunder Client 是 VSCode 内嵌的类 Postman 工具,优势是自带环境管理、请求历史、基础断言和 Token 自动注入。
- 安装扩展后,点击侧边栏
Thunder Client图标,新建 Request - 填写 URL、Method、Headers 后,可点击
Save to Collection归类,再通过Environment切换 dev/staging 等配置 - 登录后,它会自动把
Authorization: Bearer xxx保存到当前环境,后续请求勾选Auto Add Auth即可复用 - 注意:它的“Tests”脚本用的是简易 JS 语法,不支持
async/await或外部库,断言只能靠pm.response.code === 200这类原始判断 - 导出集合是 JSON 格式,但无法直接导入 Postman 的
.jsoncollection v2.1 —— 需先在 Postman 中导出为 v2.0 兼容格式
用 cURL 命令 + 终端快速验证(适合 CI 或临时查问题)
当需要复现某个线上报错、或他人给了一段 curl 命令时,在 VSCode 内置终端执行最直接,且可配合 jq 快速提取字段。
- 确保系统已安装
curl和jq(macOS 可用brew install jq;Windows 推荐choco install jq) - 把命令粘贴进 VSCode 的
Terminal,例如:
curl -X POST https://api.example.com/login \
-H "Content-Type: application/json" \
-d '{"username":"test","password":"123"}' | jq '.token'
- 敏感参数(如密码)不要硬写在命令里,改用
read -s password(Linux/macOS)或set /p password=(Windows CMD)交互输入 - VSCode 终端默认使用 login shell,某些 PATH 设置可能不生效;若提示
command not found,检查终端类型(Ctrl+Shift+P → Terminal: Select Default Profile),切到zsh或bash
避免把 token 或密钥写死在代码或请求文件中
所有扩展(REST Client / Thunder Client)都支持从环境变量读值,这是防止泄露的关键习惯。
- 在 VSCode 的
settings.json中添加:
"rest-client.environmentVariables": {
"local": {
"token": "xxx",
"baseUrl": "http://localhost:3000"
}
}
然后在 .http 文件中写 Authorization: Bearer {{token}},运行时自动替换。
- 更安全的做法是让 token 由脚本动态生成(如调用登录接口后提取),但 REST Client 不支持跨请求变量传递;此时应退回到 Thunder Client 的 Tests + Environment 更新逻辑,或直接切到终端用
curl + jq + export链式处理 - 千万别把
.http或thunder-collection.json提交到 Git —— 至少在.gitignore加上*.http和**/thunder-tests/**
真正麻烦的不是发请求,而是维护多套环境下的凭证流转和响应结构变化;越早用变量抽象,后期改起来越省力。










