Files
softbus_daemon/src/api/API_INTERFACE_TABLE.md
flower_linux 7280fca08d dommessage
2026-04-28 21:56:56 +08:00

7.9 KiB
Raw Blame History

softbus_daemon API 接口表

本文档汇总 src/api 当前对外接口,分为:

  • D-Bus 直接方法
  • executeCommand JSON 命令接口
  • HTTP REST 接口

1) D-Bus 服务基础信息

项目
Service com.softbus.Daemon
ObjectPath /com/softbus/Daemon
Interface com.softbus.Daemon
适配类 IpcDBus

2) D-Bus 方法表IpcDBus

方法 入参 返回 说明
isRunning() bool 核心服务是否初始化完成
ping() QString 健康探针,固定返回 pong
getVersion() QString 进程版本号
getStatus() QString(JSON) 返回服务状态pid/role/running/timestamp 等)
getPid() qint64 返回守护进程 PID
shutdown() void 关闭 CoreService 并退出进程
reloadConfig() bool 预留,当前为占位实现
executeCommand(requestJson) QString(JSON) QString(JSON) 统一 JSON 命令入口

3) executeCommand 协议

3.1 请求格式

{
  "id": "req-001",
  "action": "add_filter",
  "params": {}
}

3.2 响应格式

{
  "id": "req-001",
  "code": 0,
  "message": "ok",
  "data": {}
}

4) action 路由表CommandDispatcher

action params 关键字段 成功 code 失败 code 说明
add_filter id, endpointHash?, deviceId?, stableKey?, condition? 0 4001 添加过滤规则
remove_filter id 0 4041 删除过滤规则
add_transform_rule id, endpointHash?, deviceId?, stableKey?, scale?, offset?, unit? 0 4002 添加转换规则
remove_transform_rule id 0 4042 删除转换规则
add_mapping_rule compositeKey, domPath, scale?, offset?, unit?, metadataId?, pointId?, catalogVersion?, updatedBy? 0 4004 / 5002 新增/更新映射规则;成功后持久化到 runtime_mappings.json5002 表示持久化失败
remove_mapping_rule compositeKey 0 4043 / 5002 删除映射规则并持久化
list_mapping_rules 0 - 返回 itemsmappingCatalogVersion
discovery_start ttlMs? 0 - 开启嗅探模式
discovery_stop 0 - 关闭嗅探模式
discovery_clear 0 - 清空发现池
list_rules 0 - 返回规则计数状态
get_status 0 - 返回规则计数 + discovery/mapping 状态
其他未知 action - - 4040 未知动作

5) HTTP REST 路由表RestApiRoutes

5.1 通用路由

方法 路径 说明
GET /health 健康检查,返回 {"ok": true}
GET /v1/status 透传 get_status 的状态响应
POST /v1/command 统一命令入口(请求体为 executeCommand JSON

5.2 设备树 / 设备路由

方法 路径 请求参数 说明
GET /api/v1/device-tree 返回当前设备树快照
GET /api/v1/devices 返回当前运行态设备列表
GET /api/v1/devices/{id} path: id(int) 返回指定运行态设备详情
PATCH /api/v1/device-tree/nodes/{id} body: 任意可变节点字段子集 部分更新设备树节点;当前至少保护 idparams.stableKeyparams.onlineparams.lastSeenTs

5.3 规则管理路由

方法 路径 请求参数 说明
GET /api/v1/rules/status 返回动态规则计数状态
POST /api/v1/rules/filter body: id, endpointHash?, deviceId?, stableKey?, condition? 新增过滤规则
DELETE /api/v1/rules/filter/{id} path: id 删除过滤规则
POST /api/v1/rules/transform body: id, endpointHash?, deviceId?, stableKey?, scale?, offset?, unit? 新增转换规则
DELETE /api/v1/rules/transform/{id} path: id 删除转换规则
  • 说明:
    • transform 规则已经在 PipelineEngine::applyTransformAndEnrich(...) 中生效。
    • filter 路由当前主要提供“注册表管理”能力;动态 filter 规则尚未真正接入 PipelineEngine::stage3Filter(...) 的执行链路。

5.4 Pipeline 路由

方法 路径 请求参数 说明
GET /api/v1/pipeline/status 返回 pipeline 运行状态、session 数量、队列容量、插件摘要与 counters
GET /api/v1/pipeline/counters 返回 in/out/drop/error/mergeDrop 计数器快照
GET /api/v1/pipeline/config 返回当前运行时配置快照
  • 说明:/v1/status 仍然是 control-plane 摘要(规则 + discovery + mapping不等同于 /api/v1/pipeline/status

5.5 插件 / 协议能力路由

方法 路径 请求参数 说明
GET /api/v1/plugins 返回 parser / framer / mapper 三类逻辑插件的统一列表
GET /api/v1/plugins/protocols 返回按协议聚合后的能力快照parser/framer/mapper pluginId
GET /api/v1/plugins/mappers 返回 mapper 插件列表

5.6 Metadata / Profile 路由

方法 路径 请求参数 说明
GET /api/v1/metadata 返回 data(字典数组)与可选 catalogVersion(根级字段)
GET /api/v1/metadata/{metadataId} path: metadataId 返回指定 metadata 详情(含可选 catalogVersion
GET /api/v1/profiles 返回 data 与可选 catalogVersion
GET /api/v1/profiles/{deviceId} path: deviceId 返回指定 deviceId 关联的全部 profile含可选 catalogVersion

5.7 Discovery 路由

方法 路径 请求参数 说明
POST /api/v1/discovery/start body: ttlMs? 开启嗅探;可设置自动关闭 TTL
POST /api/v1/discovery/stop 关闭嗅探
GET /api/v1/discovery/status 获取发现池运行状态
POST /api/v1/discovery/clear 清空发现池样本
GET /api/v1/discovery/samples query: offset?, limit?, endpointHash?, protocol? 拉取样本(按更新时间倒序,且过滤已映射 key

5.8 Mapping 路由

方法 路径 请求参数 说明
POST /api/v1/mapping/bind body: compositeKey, domPath, scale?, offset?, unit?, metadataId?, pointId?, catalogVersion?, updatedBy? 绑定或更新映射规则并写入 runtime_mappings.json
POST /api/v1/mapping/unbind body: compositeKey 删除映射规则并持久化
GET /api/v1/mapping/list 返回 itemsmappingCatalogVersion

6) 通用错误码约定(当前实现)

code message 说明
0 ok 成功
4000 invalid_json 请求 JSON 无法解析或非对象
4001 invalid_filter_rule 过滤规则参数非法
4002 invalid_transform_rule 转换规则参数非法
4003 invalid_action action 为空或分发器不可用
4004 invalid_mapping_rule 映射规则参数非法
4040 unknown_action action 未注册
4041 filter_not_found 删除过滤规则时未找到
4042 transform_rule_not_found 删除转换规则时未找到
4043 mapping_rule_not_found 删除映射规则时未找到
5002 persist_mappings_failed 映射规则内存更新成功但写入 runtime_mappings.json 失败

7) 维护建议

  • 新增 action 时,同时更新:
    • CommandDispatcher::dispatch(...)
    • 本文档第 4 节 action 表
  • 新增 REST 路由时,同时更新:
    • RestApiRoutes.cpp
    • 本文档第 5 节路由表
  • 若扩展返回结构,保持 code/message/data 三元组不变,避免客户端兼容性问题。