Postman路径变量必须用{{userId}}语法,且变量名须与后端c.Param("userId")参数名严格一致(含大小写);错误写法如/:userId或/{userId}均无效,变量值需通过环境、集合或数据文件预先赋值。

Postman 里用变量替换路径中的 ID,核心就一条:URL 中写 {{userId}},后端路由定义为 :userId,两者名字必须完全一致,大小写也要对齐——否则 c.Param("userId") 拿不到值,返回空字符串。
Postman URL 中怎么写路径变量
不能写成 /users/{userId} 或 /users/:userId,Postman 只认双大括号语法 {{xxx}}。这是它内部变量替换的唯一入口。
- 正确写法:
https://api.example.com/users/{{userId}}/posts/{{postId}} - 错误写法:
https://api.example.com/users/:userId/posts/:postId(Postman 不解析冒号语法) - 错误写法:
https://api.example.com/users/{userId}/posts/{postId}(这是 OpenAPI 规范写法,Postman 导入时会自动转成{{userId}},但手动输入时不生效) - 变量名要和后端
c.Param("xxx")的参数名严格一致,比如 Go Gin 里写的是:id,那 Postman 就得用{{id}},不能是{{userId}}
变量值从哪来:环境、集合、数据文件三选一
只写 {{userId}} 不赋值,发送请求时会原样发出去,变成 /users/{{userId}}/posts/123,后端收不到真实 ID。必须提前给变量设值。
Postman 12.27.7 Windows x64 官方安装包,适用于 API 设计、调试、测试与协作。该系列包含 Enterprise 云端性能测试静态 IP 出口能力,以及接口规范标签管理改进,适合受限网络测试与规范资源组织场景。
- 环境变量最常用:点右上角「Environments」→ 新建 → 添加
userId=101→ 切换到该环境,URL 自动替换 - 集合变量适合固定测试集:在集合设置页的 «Variables» 标签里添加,作用域限于当前集合
- 数据文件用于批量测试:用 Runner 导入
users.csv或users.json,URL 中仍写{{userId}},Runner 会逐行代入;注意此时不能点「Send」按钮单发,会报ReferenceError: data is not defined
Go 后端接收时常见陷阱
Postman 发出 /users/{{userId}}/posts/{{postId}},Gin 收到的是已替换好的真实路径,比如 /users/101/posts/205,所以 c.Param() 才能提取。但容易踩几个坑:
-
c.Param("userId")返回的是字符串,不是整数,直接传给数据库可能报错;要用strconv.Atoi()转,且必须检查err - 如果路径是
/files/*filepath这种通配符,c.Param("filepath")返回的是带前导斜杠的值(如/a/b/c),需要strings.TrimPrefix(filepath, "/")清理 - OpenAPI 导入生成的集合默认用
{{userId}},但有些旧脚本或 CI 工具硬依赖:userId格式,这时得用 Collection SDK 编程重写路径,不能靠 Postman GUI 解决
真正卡住人的往往不是语法,而是变量名拼错、环境没切换、或者 Runner 场景下误点 Send —— 这些地方没提示,只默默发错请求,排查起来反而最耗时间。

















