规则引擎配置好了,怎么给业务系统调用?API集成完整指南

0 阅读3分钟

一、规则配置完,怎么用?

很多开发者第一次接触规则引擎时会问:我在界面上拖拖拽拽配了一套规则,我的Java/Go/Python程序怎么调用它?

答案是:规则引擎会暴露标准REST API。业务系统只需要发送HTTP请求,就能拿到决策结果。

二、JVS-Rules的API调用流程

第一步:确保决策流已启用

在决策管理页面,决策卡片上有一个状态开关。只有处于“启用”状态,API才能调用成功。

​编辑

第二步:获取API信息

点击决策卡片,进入详情页,找到“调用示例”页签。这里会显示:

  • 请求地址:https://your-domain/api/risk/projectFlow/call/{flowNo}
  • 请求方式:POST
  • 请求头:Content-Type: application/json
  • 请求体格式:根据入参配置自动生成的JSON结构

​编辑

第三步:准备调用凭证

如果决策的服务开放模式设置为“凭证访问”,需要在请求头中携带凭证:

text

Authorization: Bearer <your_api_key>

凭证可以在决策的“服务开放”页面生成和管理。

​编辑

第四步:发起调用

示例请求:

json

POST /api/risk/projectFlow/call/RISK_001
Content-Type: application/json
Authorization: Bearer sk_123456

{
  "user_id": "10001",
  "order_amount": 1280,
  "user_level": "VIP"
}

示例响应:

json

{
  "code": 0,
  "msg": "success",
  "data": {
    "discount": 0.85,
    "coupon_code": "VIP_100_OFF",
    "final_amount": 1088
  },
  "timestamp": "2026-04-13T10:30:00.123Z"
}

三、API调用时序图

text

业务系统 -> JVS-Rules: POST /call/{flowNo} (入参JSON)
JVS-Rules -> JVS-Rules: 解析入参,启动决策流
JVS-Rules -> 数据源(可选): 查询数据库/调用外部API
数据源 --> JVS-Rules: 返回数据
JVS-Rules -> JVS-Rules: 执行规则、评分卡、决策表等
JVS-Rules --> 业务系统: 返回决策结果

四、调用日志与监控

每次API调用都会生成一条执行记录。在JVS-Rules管理界面,可以查看:

  • 调用时间、耗时、是否成功
  • 入参和出参的具体内容
  • 决策流的执行路径(哪个节点走了哪个分支)
  • 每个节点的中间计算结果

这些信息对于调试规则排查问题非常有帮助。

​编辑

五、不同语言的调用示例

Java(使用RestTemplate)

java

RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set("Authorization", "Bearer sk_123456");

Map<String, Object> request = new HashMap<>();
request.put("user_id", "10001");
request.put("order_amount", 1280);

HttpEntity<Map<String, Object>> entity = new HttpEntity<>(request, headers);
ResponseEntity<String> response = restTemplate.postForEntity(
    "https://your-domain/api/risk/projectFlow/call/RISK_001",
    entity, String.class);

Python

python >

import requests

url = "https://your-domain/api/risk/projectFlow/call/RISK_001"
headers = {"Authorization": "Bearer sk_123456"}
payload = {"user_id": "10001", "order_amount": 1280}

response = requests.post(url, json=payload, headers=headers)
print(response.json())

cURL

bash

curl -X POST https://your-domain/api/risk/projectFlow/call/RISK_001 \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk_123456" \
  -d '{"user_id":"10001","order_amount":1280}'

六、小结

规则引擎的价值最终要通过API来释放。JVS-Rules提供了完整、标准、易于集成的REST API,让规则配置与业务系统实现彻底解耦。无论你的业务系统是Java、Go、Python还是Node.js,都可以轻松调用。