Postman 駭客 — 終於!在 Request 之間引用自定義模組功能

SleeperShark
3 min readMay 7, 2024

--

這個功能也是期待很久了,終於在 v11 出現啦!

我之前在這篇分享文中曾經提到,可以透過 Collection/Folder 層級的 Pre-script 中撰寫 Js function,然後在 Request 的 Pre-script 呼叫該 function。

這樣的寫法雖然可以達成共用 function 的效果,不過也有一些限制:

  1. 呼叫該 function 時無法顯示 function 的 document hint
  2. 共用 function 的 Requests template 必須擁有共同的 parent Collection/Folder

而這次 Postman 的新功能 Reuse Scripts 正式解決了這個問題,讓使用者可以更直覺的方式引用需要的模組!

新增 Package 的方式可以參考上面官方文件的步驟,以下就簡單做一個 logger 測試:

情境:POST Login Request,Body 使用 raw — json 格式。

建立 loggers packages:

// loggers package library

/**
* 取得 payload object
*
* @returns {Object}
*/
function parsePayload() {
const body = pm.request.body;

if (body.mode == "raw") {
return JSON.parse(body.raw);
}

}

/**
* 將 payload 的 k-v data 以 alphebetically 的順序印出
*/
function payloadLogger() {
const payload = parsePayload();

keys = Object.keys(payload);
keys.sort();

keys.forEach(function (key) {
console.log(key + ": " + payload[key]);
});

}

module.exports = {
payloadLogger
}

在 Request Pre-script 時,只要 require 這個模組,就可以看到 payload 的 log 紀錄:

// In Request Pre-Script
const loggers = pm.require('@winter-star-277139/loggers');

loggers.payloadLogger();

感人的是除了有 auto-complete 功能, ide 也可以顯示 JSDoc 的內容!真的方便很多 😍

--

--