如何用vscode进行API测试与调试_集成REST Client的实战方法【教程】

发布时间 - 2026-01-28 00:00:00    点击率:
VS Code 通过 REST Client 扩展实现 API 测试:安装后新建 .http 文件,用 Ctrl+Alt+R 发送请求;支持请求头、JSON body、环境变量、响应变量提取等完整功能。

VS Code 本身不内置 API 测试功能,但通过 REST Client 扩展可直接在编辑器里发送 HTTP 请求、查看响应、管理环境变量——无需跳转 Postman 或命令行。

安装 REST Client 扩展并验证是否生效

打开 VS Code 扩展市场(Ctrl+Shift+X),搜索 REST Client,安装由 Huachao Mao 发布的官方扩展。安装后重启 VS Code(部分版本需重启才加载语法高亮)。新建一个文件,保存为 test.httpapi.test.http,输入以下内容:

GET https://www./link/4d2fe2e8601f7a8018594d98f28706f2

光标停在该行,按 Ctrl+Alt+R(Windows/Linux)或 Cmd+Alt+R(Mac),若右下角弹出“Sending request…”并显示 JSON 响应,则扩展已正常工作。

常见问题:

  • 快捷键无效?检查是否与其他扩展冲突(如 Vim 插件会劫持 Ctrl+Alt+R),可在 keybindings.json 中重映射为 rest-client.request
  • 没有语法高亮?确认文件后缀是 .http.rest,且未被其他语言模式覆盖(右下角点击语言模式,手动选 HTTP

编写带请求头、参数和 body 的 HTTP 请求

REST Client 支持完整 HTTP 协议要素,但格式严格:空行分隔 headers 与 body,headers 每行一个,body 可为 raw、JSON、form-data 等。

示例(POST JSON):

POST https://httpbin.org/post
Content-Type: application/json

{ "name": "Alice", "age": 30 }

注意点:

  • 必须用空行分隔 headers 和 body;否则 body 被当作文本 header 处理,返回 400
  • JSON body 不需要引号包裹整个对象,也不支持 JS 注释(///* */ 会导致解析失败)
  • 查询参数可直接拼在 URL 后,如 GET https://www./link/4d2fe2e8601f7a8018594d98f28706f2?foo=bar&baz=qux& 是 HTML 实体,实际写 & 即可,VS Code 会自动转义)

用 @variables 和 environments 管理多环境配置

避免硬编码 URL 或 token,用变量 + 环境切换实现测试/预发/生产一键切换。

在文件顶部定义变量块:

@host = https://www./link/710ba53b0d353329706ee1bedf4b9b39
@token = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

GET {{host}}/users Authorization: Bearer {{token}}

更进一步,使用环境(environments):

### Environment: dev
@host = https://dev-api.example.com
@token = dev-token-123

Environment: prod

@host = https://www./link/710ba53b0d353329706ee1bedf4b9b39 @token = prod-token-456

Get user list

GET {{host}}/users Authorization: Bearer {{token}}

点击右下角环境名称(默认 No Environment),选择 devprod,后续所有 {{host}}{{token}} 将自动替换为对应值。

关键细节:

  • 环境块之间必须用空行分隔,且每个环境块以 ### Environment: xxx 开头
  • 变量名不能含空格或特殊字符,仅限字母、数字、下划线
  • 环境变量只在当前文件内生效;跨文件复用需用 # @include 引入公共变量文件(需启用 rest-client.enableFileVariables 设置)

调试响应与链式请求(response variables)

从上一个响应中提取字段(如 token、ID),用于下一个请求——这是调试真实业务流的关键能力。

示例(登录后获取用户信息):

### Login
POST https://httpbin.org/post
Content-Type: application/json

{ "username": "test", "password": "123" }

{% client.global.set("auth_token", response.body.json().token); %}

Get profile

GET https://www./link/4d2fe2e8601f7a8018594d98f28706f2 Authorization: Bearer {{auth_token}}

说明:

  • > {% ... %} 是响应脚本块,运行在 Node.js 环境中,response.body.json() 解析响应体为对象
  • client.global.set() 写入全局变量,跨请求可用;也可用 client.environment.set() 写入当前环境变量
  • 脚本中不能使用 console.log,错误会显示在输出面板(View → Output → REST Client)
  • 若响应非 JSON,用 response.body.toString() 或正则提取,例如 response.body.match(/"id":(\d+)/)[1]

真正难的是响应结构不稳定时的容错处理——比如字段可能不存在、嵌套层级变化、或返回 HTML 错误页而非 JSON。建议在脚本中加 if (response.body && response.headers['content-type']?.includes('json')) 判断,否则直接 return 避免 Cannot read proper

ty 'token' of undefined 报错。


# linux  # word  # vscode  # html  # js  # node.js  # json  # node  # windows  # 编码  # app  # postman  # if  # include  # Token  # 全局变量  # Property 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 中国移动官方网站首页入口 中国移动官网网页登录  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  详解Oracle修改字段类型方法总结  如何用虚拟主机快速搭建网站?详细步骤解析  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  制作企业网站建设方案,怎样建设一个公司网站?  Python文件流缓冲机制_IO性能解析【教程】  如何用JavaScript实现文本编辑器_光标和选区怎么处理  如何在腾讯云服务器上快速搭建个人网站?  如何制作一个表白网站视频,关于勇敢表白的小标题?  如何实现javascript表单验证_正则表达式有哪些实用技巧  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  在Oracle关闭情况下如何修改spfile的参数  成都网站制作公司哪家好,四川省职工服务网是做什么用?  Laravel如何处理和验证JSON类型的数据库字段  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  佛山企业网站制作公司有哪些,沟通100网上服务官网?  长沙做网站要多少钱,长沙国安网络怎么样?  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤  如何快速生成橙子建站落地页链接?  如何在橙子建站中快速调整背景颜色?  微信公众帐号开发教程之图文消息全攻略  南京网站制作费用,南京远驱官方网站?  Java遍历集合的三种方式  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  php在windows下怎么调试_phpwindows环境调试操作说明【操作】  动图在线制作网站有哪些,滑动动图图集怎么做?  Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道  Android Socket接口实现即时通讯实例代码  在线教育网站制作平台,山西立德教育官网?  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例  ,网页ppt怎么弄成自己的ppt?  如何在景安服务器上快速搭建个人网站?  Laravel如何处理文件下载请求?(Response示例)  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  Mybatis 中的insertOrUpdate操作  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  魔毅自助建站系统:模板定制与SEO优化一键生成指南  在centOS 7安装mysql 5.7的详细教程  如何在阿里云完成域名注册与建站?  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  如何生成腾讯云建站专用兑换码?  Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  Swift中循环语句中的转移语句 break 和 continue  详解Android中Activity的四大启动模式实验简述  如何在万网利用已有域名快速建站?  使用豆包 AI 辅助进行简单网页 HTML 结构设计  如何在IIS服务器上快速部署高效网站?