一、规则配置完,怎么用?
很多开发者第一次接触规则引擎时会问:我在界面上拖拖拽拽配了一套规则,我的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,都可以轻松调用。