本文介绍如何使用 Postman 快速调试 DataEase API
1. 创建AccessKey/SecretKey
2. 获取访问地址和参数
方式一:查看API文档
方式二:通过浏览器控制台查看网络请求
3. Postman 配置 Pre-script
需将 accessKey 和 secretKey 的值替换为第一步创建的 AccessKey/SecretKey
脚本内容如下:
// 定义 accessKey 和 secretKey
const accessKey = "替换成你的AccessKey";
const secretKey = "替换成你的SecretKey";
// 手动实现生成 UUID 的函数
function generateUUID() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
var r = Math.random() * 16 | 0, v = c === 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
});
}
// 定义 AES 加密函数
function aesEncrypt(plaintext, secretKey, accessKey) {
const key = CryptoJS.enc.Utf8.parse(secretKey);
const iv = CryptoJS.enc.Utf8.parse(accessKey);
const encrypted = CryptoJS.AES.encrypt(plaintext, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return encrypted.toString();
}
// 生成签名
const signature = aesEncrypt(accessKey + "|" + generateUUID() + "|" + Date.now(), secretKey, accessKey);
// 手动生成 JWT 头部
const header = {
alg: "HS256",
typ: "JWT"
};
const encodedHeader = btoa(JSON.stringify(header)).replace(/=+$/, '');
// 手动生成 JWT 负载
const payload = {
accessKey: accessKey,
signature: signature
};
const encodedPayload = btoa(JSON.stringify(payload)).replace(/=+$/, '');
// 手动生成 JWT 签名
const baseString = encodedHeader + '.' + encodedPayload;
const hmac = CryptoJS.HmacSHA256(baseString, secretKey);
const encodedSignature = CryptoJS.enc.Base64.stringify(hmac).replace(/=+$/, '').replace(/\+/g, '-').replace(/\//g, '_');
// 组合成完整的 JWT
const token = encodedHeader + '.' + encodedPayload + '.' + encodedSignature;
// 设置为环境变量,方便在请求中使用
pm.environment.set("accessKey", accessKey);
pm.environment.set("signature", signature);
pm.environment.set("x-de-ask-token", token);
4. Postman 配置 Headers、请求体等
Headers 按照图示配置,无需修改
accessKey:{{accessKey}}
signature:{{signature}}
x-de-ask-token:{{x-de-ask-token}}
Body 按照 API 请求要求填写,此处以获取仪表板列表树为例