本质上是一样的东西,只是一个是在 request 前执行、一个是在收到 response 後执行,分别举两个实际运用例子。
用 javascript 写
用於制作 signature,在串接 webhook 时,对方可能有提供 signature 给我们做验证,而大部分时候会是把 request body 或部分 request body,用一个专属於我们的 key 做加密成为一个 signature,所以每次发送内容不同,signature 就不同。但每次要另外在其他地方做完 signature 再回填 postman 太累了,这时候就可以利用 pre-request script!在每次送 request 前,执行脚本产生 signature~
// 假设 signature 规则为 signature = HmacSHA256(request_body, secret)
// 读取环境变数 secret
var secret = pm.environment.get("secret");
// 读取环境变数 request body
var body = request.data;
// 制作 sugnature
var signature = CryptoJS.HmacSHA256(body, secret).toString();
// 回写环境变数 signature
pm.environment.set("signature", signature);
故名思义,可以用来验证收到的 response 是否符合预期,但除此之外,我自己满常用的是把 response 的内容再存成环境变数。例如在串接购物 API 时,可能会有一支下订的 API 和一支查订单状态的 API;前者下定成功後会回传订单编号,而後者需要带入订单编号查询。
试想,如果每次要查刚刚下订的单都要去匡选复制编号再贴到查订单的 API 是不是很累?这时侯设定环境变数order_id
,然後在每次下订成功後都自动更新order_id
就不用一直去复制贴上了~
假设下定成功回传的讯息是这样,我们想把 order_id
存起来
{
"code": 200,
"message": "success",
"result": {
"order_id": "0000-0000-0000-00000000",
"price": 200.00,
"currency": "USD",
"timestamp": "2021-09-09"
}
}
var resp = pm.response.json();
if (resp.code !== 200) {
console.error("API 执行失败");
return;
}
pm.environment.set("order_id", resp.result.order_id);
<<: IT铁人DAY 7-Class Diagram类别图
>>: 如何让 Laravel Eloquent 支援 composite key
这一天原本想贴一贴学员心得,所以完全没有准备什麽内容。 学员毕业心得,没有强制要每个离开的学员写。...
出於书本 Chapter 1. Introduction to Ethical Hacking 非技...
教材网址 https://coding104.blogspot.com/2021/06/java-i...
前 11 天已经将常见的 concurrency patterns 介绍完毕,今天我们要介绍的不是 ...
Agenda 资安宣言 测试环境与工具 技术原理与程序码 References 下期预告 资安宣言 ...