news 2026/4/3 3:04:40

postman怎么获取上一个接口执行完后的参数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
postman怎么获取上一个接口执行完后的参数

在Postman中获取上一个接口执行完后的参数,主要有以下几种方法:

1.使用环境变量(Environment Variables)

这是最常用的方法:

设置变量(在第一个接口的Tests中):

// 解析响应 const responseJson = pm.response.json(); // 将需要的值保存到环境变量 pm.environment.set("token", responseJson.token); pm.environment.set("userId", responseJson.data.userId); pm.environment.set("sessionId", responseJson.sessionId); // 也可以保存数组或对象 pm.environment.set("userData", JSON.stringify(responseJson.data));

获取变量(在第二个接口中):

// 在URL中使用 // 例如:{{baseUrl}}/users/{{userId}}/profile // 在请求体中使用 // 在Body的JSON中使用:{{token}} // 在Headers中使用 // Authorization: Bearer {{token}} // 在Pre-request Script中获取 console.log("用户ID:", pm.environment.get("userId")); console.log("Token:", pm.environment.get("token")); // 如果是JSON字符串,需要解析 const userData = JSON.parse(pm.environment.get("userData") || "{}"); console.log("用户数据:", userData);

2.使用全局变量(Global Variables)

适用于所有接口共享的数据:

设置全局变量:

// 在第一个接口的Tests中 pm.globals.set("globalToken", pm.response.json().access_token); pm.globals.set("apiVersion", "v2.0");

获取全局变量:

// 在第二个接口中 const token = pm.globals.get("globalToken"); const version = pm.globals.get("apiVersion");

3.使用集合变量(Collection Variables)

适用于当前集合内的接口共享:

设置集合变量:

// 在第一个接口的Tests中 pm.collectionVariables.set("collectionToken", responseJson.token);

获取集合变量:

// 在同一个集合的第二个接口中 const collToken = pm.collectionVariables.get("collectionToken");

4.完整示例

第一个接口:登录接口

// 登录接口的Tests标签 pm.test("登录成功", function() { const response = pm.response.json(); // 验证状态码 pm.response.to.have.status(200); // 保存token到环境变量 pm.environment.set("accessToken", response.data.accessToken); // 保存用户ID pm.environment.set("currentUserId", response.data.userId); // 保存其他需要的参数 pm.environment.set("userRole", response.data.role); console.log("Token已保存:", response.data.accessToken); console.log("用户ID:", response.data.userId); });

第二个接口:获取用户信息

// 在URL中使用 // {{baseUrl}}/users/{{currentUserId}} // 在Headers中使用 // Authorization: Bearer {{accessToken}} // 在Pre-request Script中验证 const token = pm.environment.get("accessToken"); if (!token) { console.error("Token不存在,请先运行登录接口"); // 可以停止请求 throw new Error("请先获取token"); }

5.在Pre-request Script中处理

在第二个接口的Pre-request Script中,可以处理从环境变量获取的数据:

// 获取上一个接口保存的参数 const token = pm.environment.get("accessToken"); const userId = pm.environment.get("currentUserId"); // 动态设置请求头 pm.request.headers.add({ key: "Authorization", value: "Bearer " + token }); // 动态修改URL const originalUrl = pm.request.url.toString(); pm.request.url = originalUrl.replace("{userId}", userId); // 动态设置请求体 if (pm.request.body.raw) { const body = JSON.parse(pm.request.body.raw); body.userId = userId; body.timestamp = new Date().toISOString(); pm.request.body.raw = JSON.stringify(body); }

6.使用数据变量(Data Variables)

在集合运行时使用:

// 在集合运行前设置数据 pm.variables.replaceIn("{{$guid}}"); // 生成GUID pm.variables.replaceIn("{{$timestamp}}"); // 时间戳

7.批量设置变量

可以批量从响应中提取多个值:

// 从响应JSON中提取多个参数 const response = pm.response.json(); // 批量设置 const paramsToSave = { "authToken": response.token, "expiresIn": response.expires_in, "refreshToken": response.refresh_token, "userName": response.user.name }; Object.keys(paramsToSave).forEach(key => { if (paramsToSave[key]) { pm.environment.set(key, paramsToSave[key]); } });

8.使用动态变量

Postman提供了内置的动态变量:

// 在Tests中使用 console.log("GUID:", pm.variables.replaceIn("{{$guid}}")); console.log("时间戳:", pm.variables.replaceIn("{{$timestamp}}")); console.log("随机数:", pm.variables.replaceIn("{{$randomInt}}")); // 在URL或请求体中使用 // {{$guid}} {{$timestamp}} {{$randomInt}}

9.链式调用多个接口

可以在集合中使用:

// 在Tests中调用下一个请求 if (pm.response.code === 200) { // 保存数据 pm.environment.set("orderId", pm.response.json().orderId); // 延迟后执行下一个请求 setTimeout(() => { pm.sendRequest({ url: '{{baseUrl}}/orders/{{orderId}}', method: 'GET', header: { 'Authorization': 'Bearer {{accessToken}}' } }, function (err, response) { console.log(response.json()); }); }, 1000); }

10.最佳实践

  1. 变量命名规范:使用清晰的命名,如accessToken而不是token

  2. 清理变量:不需要的变量及时清理

  3. 使用不同环境:开发、测试、生产使用不同的环境

  4. 错误处理:检查变量是否存在

  5. 文档化:在描述中说明变量的用途

// 检查变量是否存在 if (!pm.environment.get("accessToken")) { console.warn("警告: accessToken 不存在"); // 可以设置默认值 pm.environment.set("accessToken", "default-token"); } // 清理变量 pm.environment.unset("tempToken"); pm.environment.unset("tempData");

变量作用域优先级

Postman中变量的优先级(从高到低):

  1. 本地变量(Local Variables)

  2. 数据变量(Data Variables)

  3. 环境变量(Environment Variables)

  4. 集合变量(Collection Variables)

  5. 全局变量(Global Variables)

通过合理使用这些变量传递方法,你可以在Postman中轻松地实现接口间的参数传递和数据共享。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/27 12:42:16

基于Air780EHV核心板的OTP核心库API使用详解!

Air780EHV核心板支持通过调用OTP核心库API来访问和控制片上OTP存储资源。本文旨在深入解析该API的使用方式,包括函数接口、调用时序与错误处理机制,为嵌入式开发者提供一份清晰、可操作的技术参考,确保API功能被正确、稳定地应用。万物互联的…

作者头像 李华
网站建设 2026/4/1 2:09:25

MATLAB基于Shapley组合模型物流需求预测

核心思想与背景 农产品冷链物流需求预测具有典型的季节性、波动性、多影响因素性等特点。单一的预测模型往往只能捕捉数据的部分模式,存在局限性: Shapley组合模型 借鉴了博弈论中夏普利值(Shapley Value)的思想,将多…

作者头像 李华
网站建设 2026/3/28 17:39:01

YOLO26涨点改进 | 全网首发、主干改进篇 | AAAI 2026 | StripNet 主干让 YOLO26 更加强大!利用 StripNet的条形卷积,提升遥感目标检测有效涨点、高效发论文

一、本文介绍 🔥本文将 StripNet 主干网络应用于 YOLO26 版本的目标检测,显著提升了其在高纵横比物体和复杂场景中的检测能力。StripNet 通过条形卷积有效捕捉长条物体的特征,优化了定位精度,并减少了计算冗余,使得模型更加高效简洁。此外,StripNet 提升了YOLO26在遥感…

作者头像 李华
网站建设 2026/3/13 5:18:13

python道理小说阅读器 书架小程序

目录 Python小说阅读器与书架小程序摘要注意事项 开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式! Python小说阅读器与书架小程序摘要 Python开发的小说阅读器和书架小程序通常结合文件操作…

作者头像 李华
网站建设 2026/3/14 20:21:00

Spring Boot + Docker:实现可挂载可热更新的 config.json

文章目录 一、背景:为什么 jar 内的 config.json 不能被覆盖?二、Spring Boot 静态资源加载机制三、解决方案结构四、核心实现:优先读外部文件五、完整 Dockerfile 示例八、总结 前言:在实际项目中,我们经常需要让前端…

作者头像 李华
网站建设 2026/3/28 6:02:24

全面应用掌握!提示工程架构师带你全面掌握Agentic AI国际化应用技能

Agentic AI国际化应用全攻略:从提示工程到落地实践 一、引言:全球化时代,Agentic AI为何成为企业的“破局密钥”? 1.1 一个真实的痛点:跨境企业的“语言墙”与“文化沟” 某跨境电商平台的客服团队曾遇到这样的困境: 来自12个国家的用户用8种语言咨询,客服需要切换翻…

作者头像 李华