You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

测试Scoold中Para API调用模块及相关问题咨询

关于Scoold调用Para API模块的测试问题解答

1. 处理Para API调用时动态变化的认证密钥

Para的动态"认证密钥"本质是请求签名,并非固定密钥——每次请求都会根据请求内容、时间戳和主密钥生成,因此不能硬编码校验,正确处理方式如下:

  • 确保Scoold配置文件中para.api.key配置的Para主密钥,与Para服务端的主密钥完全一致。
  • 使用Para官方提供的签名验证工具类(如Java中的SignatureUtils.verifySignature()),传入请求原始内容、时间戳、签名以及主密钥来校验合法性。
  • 同时校验时间戳有效性,拒绝与当前时间差超过5分钟的请求,防止重放攻击。

示例验证代码(Java):

// 从请求头提取签名与时间戳
String signature = request.getHeader("X-Para-Signature");
long timestamp = Long.parseLong(request.getHeader("X-Para-Timestamp"));
// 读取请求体内容
String requestBody = IOUtils.toString(request.getInputStream(), StandardCharsets.UTF_8);
// 从配置获取主密钥
String masterKey = Config.get("para.api.key");
// 执行签名验证
boolean isValid = SignatureUtils.verifySignature(requestBody, timestamp, signature, masterKey);
if (!isValid) {
    throw new SecurityException("Invalid Para API signature");
}

2. 模拟Para API调用的方法

方法一:用curl/Postman手动构造请求

  • 构造JSON格式请求体,比如Para触发的用户创建事件:
    {
      "event": "user_created",
      "object": {"id": "user123", "name": "Test User"}
    }
    
  • 计算签名:用主密钥对请求体内容+时间戳做HMAC-SHA256加密,转Base64格式作为X-Para-Signature请求头。
  • 设置请求头:
    • Content-Type: application/json
    • X-Para-Timestamp: 1699999999000(当前毫秒级时间戳)
    • X-Para-Signature: [生成的签名值]
  • 发送POST请求到Scoold的Para接收端点(如/api/para/webhook)。

方法二:用测试框架直接模拟调用

  • 单元测试场景:直接调用Scoold中处理Para请求的服务类,传入模拟参数:
    @Test
    public void testParaWebhookHandler() {
        ParaWebhookHandler handler = new ParaWebhookHandler();
        String requestBody = "{\"event\": \"user_updated\", \"object\": {\"id\": \"user123\"}}";
        long timestamp = System.currentTimeMillis();
        String signature = SignatureUtils.generateSignature(requestBody, timestamp, masterKey);
        // 调用处理逻辑
        handler.handleWebhook(requestBody, timestamp, signature);
        // 断言处理结果
        assertTrue(handler.isHandledSuccessfully());
    }
    
  • 集成测试场景:用WireMock搭建模拟Para服务,配置预设响应与签名规则,让Scoold调用该服务验证逻辑。

方法三:开启Para测试模式

开启Para的测试模式后,可跳过签名校验直接发送请求,方便快速调试——注意绝对不能在生产环境启用该模式。

内容的提问来源于stack exchange,提问作者Changheum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 06:02:49