IceIce
首页
  • 入门

    • 快速开始
    • 核心概念
    • 架构设计
  • SDK 指南

    • Java SDK
    • Go SDK
    • Python SDK
  • 参考

    • 节点类型速查
    • Roam API
    • Mock
    • Server 配置
    • Client 配置
演示
常见问题
  • 更新日志
  • 升级指南
赞助
社区
  • GitHub
  • Gitee
  • English
  • 简体中文
首页
  • 入门

    • 快速开始
    • 核心概念
    • 架构设计
  • SDK 指南

    • Java SDK
    • Go SDK
    • Python SDK
  • 参考

    • 节点类型速查
    • Roam API
    • Mock
    • Server 配置
    • Client 配置
演示
常见问题
  • 更新日志
  • 升级指南
赞助
社区
  • GitHub
  • Gitee
  • English
  • 简体中文
  • 参考手册

    • 节点类型
    • Roam API
    • Server 配置
    • Client 配置
    • Mock 执行

Mock 执行

Mock 执行允许通过 Web UI 向 Client SDK 发起远程规则调试,Server 作为代理,通过文件实现 RPC 通信。

架构

Web UI ──POST──▶ Server ──写请求文件──▶ mock/{app}/{address}/{mockId}.json
                                        │
                 Client SDK 轮询 ◀───────┘
                                        │
Web UI ◀─────── Server ◀──读响应文件─── mock/{app}/{address}/{mockId}_result.json
  1. Web UI 发送 POST /ice-server/mock/execute
  2. Server 将请求写入 mock/{app}/{address}/{mockId}.json
  3. Client SDK 轮询 mock 目录,读取请求文件,本地执行规则,将结果写入 {mockId}_result.json
  4. Server 轮询响应文件(60 秒超时,1 秒间隔),返回结果给 Web UI

Server API

POST /ice-server/mock/execute

执行一次 Mock 请求。

请求体:

{
  "app": 1,
  "iceId": 100,
  "confId": null,
  "ts": 1710000000000,
  "roam": { "uid": 12345, "score": 85.0 },
  "target": "all"
}
字段类型必填说明
appint是应用 ID
iceIdint否规则 ID(iceId 或 confId 二选一)
confIdint否配置 ID(iceId 或 confId 二选一)
tsint64否时间戳
roamobject否输入数据
targetstring否执行目标,为空时默认 "all"(任意可用 Client)

target 取值:

值说明
all任意可用 Client
lane:xxx指定泳道的 Client
address:xxx指定地址的 Client

响应体:

{
  "mockId": "abc123",
  "success": true,
  "roam": { "uid": 12345, "score": 85.0, "result": "pass" },
  "process": "...",
  "error": null,
  "executeAt": 1710000001000
}

GET /ice-server/mock/schema

获取 Mock 输入的表单 Schema,用于 Web UI 自动生成表单字段。

查询参数:

参数类型必填说明
appint是应用 ID
iceIdint否规则 ID(iceId 或 confId 至少一个必填)
confIdint否配置 ID(iceId 或 confId 至少一个必填)
lanestring否泳道
addressstring否Client 地址

响应体:

{
  "fields": [
    {
      "key": "uid",
      "valueType": "Long",
      "nodeId": 42,
      "nodeName": "checkUser"
    }
  ],
  "fallback": false
}

fallback: true 表示目标 Client 离线,已回退到其他在线 Client 获取 Schema。

Client SDK

所有三种 SDK(Java / Go / Python)的 FileClient 均内置了 Mock 轮询。无需额外配置——当 mock 目录存在时,Client 自动处理 Mock 请求。

Roam Key 扫描

每种 SDK 内置静态代码分析器,扫描叶子节点方法(doFlow / doResult / doNone)中的 Roam key 访问,提取元数据。该元数据为 Schema 接口的自动表单字段生成提供支持。

在 GitHub 上编辑此页
上次更新: 2026/3/21 23:30
贡献者: waitmoon
Prev
Client 配置