DataEase V2 使用 Postman 调试 API


飞致云 发布于 2025-03-31 / 43 阅读 / 0 评论 /
本文介绍如何使用 Postman 快速调试 DataEase API 1. 创建AccessKey/SecretKey 2. 获取访问地址和参数

本文介绍如何使用 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 请求要求填写,此处以获取仪表板列表树为例

5. 测试验证



是否对你有帮助?