VSCode CodeGeeX:自动生成Postman接口测试配置
在 VSCode 写完接口逻辑,想立即测试却发现 Postman 官方插件迟迟不更新,只能反复切换窗口复制粘贴?其实 CodeGeeX 可以直接生成测试请求——不是 Postman 原生集合,而是 REST Client 兼容的 .http 文件,或 Thunder Client 可导入的 JSON 结构。所有输出均为纯文本,无需登录、不调用任何 Postman API。前提:必须先打开包含路由或控制器逻辑的源码文件,让 CodeGeeX 能够提取到路径(path)、方法(method)和参数(params)。
确认 CodeGeeX 已激活并正确识别项目上下文
打开 VSCode,检查左侧活动栏是否有 CodeGeeX 图标(注意辨别,不要误装“Postman for VSCode”等仿冒扩展)。右下角状态栏若显示「Ready」,说明插件已就绪;若显示「No context」或「Loading…」,则尚未加载当前文件夹的语义信息。此时需在编辑器中打开一个 Laravel 控制器(如 app/Http/Controllers/UserController.php),或一个带有 OpenAPI v3 注释的 TypeScript 接口定义文件,再回到 CodeGeeX 面板点击「Refresh Context」强制刷新。
【务必先打开包含路由逻辑的源码文件,否则 CodeGeeX 无法获取 path、method、params 等关键信息】
使用自然语言指令让 CodeGeeX 输出 REST Client 格式请求
在 CodeGeeX 输入框中,用自然语言描述目标请求。例如:
方法一:精确指定函数
“基于 UserController.php 中的 store 方法,生成一个 POST /api/users 的 REST Client 请求,包含 name 和 email 字段,Content-Type 设为 application/json”
方法二:利用注释推导
“当前文件顶部有 @openapi post /v1/orders 的 YAML 描述,请输出对应的 .http 格式请求,body 包含 product_id: 123 和 quantity: 2”
点击「Send」后,CodeGeeX 会输出三段式结构:首行是 POST 方法与完整 URL,接着是若干 Header 行(每行 Key: Value,无缩进),空一行后紧接着顶格编写的 JSON body。
⚠️ 注意坑点:若输出中出现 {{baseUrl}} 或 {{token}} 等变量,说明 CodeGeeX 检测到了项目中的环境变量定义,但它不会自动注入。你必须在 .http 文件开头手动声明,如 @baseUrl = https://dev.api.com,否则运行时将报错。
将生成结果保存为 .http 文件并执行
第一步:按 Ctrl+N(Windows)新建空白文档,粘贴 CodeGeeX 输出的全部内容,按 Ctrl+S 保存为 test-user-create.http。
第二步:确认文件编码为 UTF-8。查看右下角编码名,若非 UTF-8,点击选择「Sa ve with Encoding」→「UTF-8」,避免中文字段乱码。
第三步:将光标停在 URL 行末尾,按住 Ctrl(Mac 使用 Cmd)并单击该行,VSCode 会自动调用 REST Client 发送请求。也可直接将文件拖拽至 REST Client 面板执行。若返回 400 或空响应,先检查三点:CodeGeeX 输出的 body 是否顶格、空行数量是否唯一、URL 是否包含 https://——任一环节出错都会导致请求被拒绝。
导出为 Thunder Client 兼容的 JSON 请求(可选)
若团队固定使用 Thunder Client,可让 CodeGeeX 直接转换格式。输入:
“将刚才生成的 POST /api/users 请求转为 Thunder Client 支持的单条 JSON 请求对象,包含 url、method、headers、body 字段,body 类型设为 raw”
CodeGeeX 将输出类似以下 JSON 对象:
{"url":"https://dev.api.com/api/users","method":"POST","headers":{"Content-Type":"application/json"},"body":"{"name":"test","email":"t@e.co"}"}
复制该 JSON,打开 Thunder Client,点击左上角「+ New Request」,在弹出的窗口中粘贴,然后点击「Import」→ 选择「Raw JSON」→ 确认导入。
导入后,务必在右上角齿轮图标中激活对应的 Environment,否则 {{baseUrl}} 等变量仍无法解析。
