Postman中路径参数必须直接写在URL路径里并用{{variable_name}}语法替换,而非通过Params面板添加;否则后端@PathVariable无法接收,导致404或500错误。

Postman 里设置路径参数,不是靠“添加参数”按钮,而是直接写进 URL 路径里,再配合变量语法 {{variable_name}} 替换动态值。 否则请求发出去,后端收不到 @PathVariable,会直接 404 或 500。
URL 中怎么写路径参数(不是 Query)
路径参数必须是 URL 路径的一部分,比如 /api/users/123 中的 123。在 Postman 里不能靠 “Params” 标签页填 —— 那里只管 Query 参数。
- 正确写法:在请求 URL 输入框中直接写
http://localhost:8080/api/users/{{user_id}} - 错误写法:写成
http://localhost:8080/api/users,然后在 “Params” 标签页里加user_id=123—— 这只会变成 query:?user_id=123,后端用@PathVariable拿不到 - Spring Boot 后端必须匹配:
@GetMapping("/api/users/{user_id}"),且方法参数名要和 URL 中花括号内一致(或显式指定@PathVariable("user_id"))
变量从哪来:环境 / 集合 / 全局变量都行
只要变量已定义,URL 里的 {{user_id}} 就能被自动替换。但要注意作用域和设置时机:
Postman 12.27.7 Windows x64 官方安装包,适用于 API 设计、调试、测试与协作。该系列包含 Enterprise 云端性能测试静态 IP 出口能力,以及接口规范标签管理改进,适合受限网络测试与规范资源组织场景。
- 环境变量最常用:
pm.environment.set("user_id", "999")在登录接口的 Tests 脚本里提取 token 后,顺手把用户 ID 存进去 - 集合变量适合固定值:
pm.collectionVariables.set("version", "v2"),然后 URL 写/api/{{version}}/users/{{user_id}} - 全局变量慎用敏感值:比如
pm.globals.set("user_id", "1")是可行的,但若多人协作,容易被误覆盖 - 变量未定义时,Postman 不报错,只是原样发
{{user_id}}到服务端 —— 此时后端通常解析失败,返回 400 或 404
常见报错和排查点
发出去的请求看似正常,但后端收不到路径参数?先看这几点:
- 检查 URL 是否真含
{{xxx}}—— 如果变量名拼错(如{{userIid}}),Postman 不提示,只留空或发原始字符串 - 确认当前启用了对应环境:右上角环境选择器是否选中了你设了
user_id的那个环境?没启用 = 变量为空 - 后端日志是否显示收到的路径是
/api/users/%7B%7Buser_id%7D%7D?说明变量根本没渲染,是 URL 编码后的原始文本 -
@PathVariable参数类型不匹配:比如 URL 是/users/abc,但方法声明@PathVariable Long id,会直接 500;建议先用String接收再转
路径参数的本质是 URL 路由的一部分,Postman 不做特殊解析,只做字符串替换。变量是否生效、替换成什么、有没有被编码,全取决于你在哪里定义、何时设置、以及当前激活的环境 —— 这些细节一漏,请求就静默失败。

















