规则引擎系统 API 文档
大约 2 分钟
规则引擎系统 API 文档
概述
本文档基于 dataengine.proto,描述规则引擎(数据处理规则链)的 gRPC 接口,包括规则的创建、更新、删除、查询以及启动/停止等能力。
包信息
- 包名:
data_engine - 语法版本:
proto3
导入依赖
import "google/protobuf/any.proto";
import "google/protobuf/empty.proto";通用消息类型
AdditionalInfo
| 字段 | 类型 | 描述 |
|---|---|---|
| description | string | 描述信息 |
DataEngineRule
| 字段 | 类型 | 描述 |
|---|---|---|
| id | string | 规则链 ID |
| name | string | 规则链名称 |
分页列表结构
GetDataEngineRuleListRequest
| 字段 | 类型 | 描述 |
|---|---|---|
| page | string | 页码 |
| size | string | 每页大小 |
| keywords | string | 关键字 |
GetDataEngineRuleListResponse
| 字段 | 类型 | 描述 |
|---|---|---|
| code | string | 状态码 |
| message | string | 消息 |
| items | DataEngineRule[] | 规则列表 |
| page | int64 | 页码 |
| size | int64 | 每页大小 |
| total | int64 | 总数 |
服务接口
服务名:DataEngineService
1. 创建规则 CreateDataEngineRule
请求:
message CreateDataEngineRuleRequest {
string id = 1;
string name = 2;
bool root = 3;
bool debugMode = 4;
AdditionalInfo additionalInfo = 5;
}响应:
message CreateDataEngineRuleResponse {
string code = 1;
string message = 2;
}RPC:
rpc CreateDataEngineRule(CreateDataEngineRuleRequest) returns (CreateDataEngineRuleResponse);2. 更新规则 UpdateDataEngineRule
请求:同创建请求结构,均为必填字段。
响应:UpdateDataEngineRuleResponse { string code; string message; }
RPC:
rpc UpdateDataEngineRule(UpdateDataEngineRuleRequest) returns (UpdateDataEngineRuleResponse);3. 删除规则 DeleteDataEngineRule
请求:DeleteDataEngineRuleRequest { string id = 1; }
响应:DeleteDataEngineRuleResponse { string code; string message; }
RPC:
rpc DeleteDataEngineRule(DeleteDataEngineRuleRequest) returns (DeleteDataEngineRuleResponse);4. 获取规则列表 GetDataEngineRuleList
请求:GetDataEngineRuleListRequest
响应:GetDataEngineRuleListResponse
RPC:
rpc GetDataEngineRuleList(GetDataEngineRuleListRequest) returns (GetDataEngineRuleListResponse);5. 启动规则 StartDataEngineRule
请求:StartDataEngineRuleRequest { string id = 1; }
响应:StartDataEngineRuleResponse { string code; string message; }
RPC:
rpc StartDataEngineRule(StartDataEngineRuleRequest) returns (StartDataEngineRuleResponse);6. 停止规则 StopDataEngineRule
请求:StopDataEngineRuleRequest { string id = 1; }
响应:StopDataEngineRuleResponse { string code; string message; }
RPC:
rpc StopDataEngineRule(StopDataEngineRuleRequest) returns (StopDataEngineRuleResponse);状态码说明
| 状态码 | 说明 |
|---|---|
| 200 | 成功 |
| 400 | 参数错误 |
| 401 | 未授权 |
| 403 | 权限不足 |
| 404 | 资源不存在 |
| 409 | 资源冲突 |
| 500 | 服务器内部错误 |
使用示例(Go)
以下示例仅演示调用方式,需替换实际
pb包路径和服务地址。
创建并启动规则
conn, _ := grpc.Dial("localhost:50051", grpc.WithTransportCredentials(insecure.NewCredentials()))
defer conn.Close()
cli := pb.NewDataEngineServiceClient(conn)
_, _ = cli.CreateDataEngineRule(context.Background(), &pb.CreateDataEngineRuleRequest{
Id: "rule-001",
Name: "温度告警规则",
Root: true,
DebugMode: false,
AdditionalInfo: &pb.AdditionalInfo{Description: "当温度超过阈值触发"},
})
_, _ = cli.StartDataEngineRule(context.Background(), &pb.StartDataEngineRuleRequest{Id: "rule-001"})查询规则列表
conn, _ := grpc.Dial("localhost:50051", grpc.WithTransportCredentials(insecure.NewCredentials()))
defer conn.Close()
cli := pb.NewDataEngineServiceClient(conn)
resp, _ := cli.GetDataEngineRuleList(context.Background(), &pb.GetDataEngineRuleListRequest{Page: "1", Size: "20", Keywords: "温度"})
for _, item := range resp.Items { fmt.Println(item.Id, item.Name) }代码生成(Go)
protoc --go_out=. --go_opt=paths=source_relative \
--go-grpc_out=. --go-grpc_opt=paths=source_relative \
dataengine.proto注意事项
- 建议在更新、删除前校验规则是否处于停止状态。
page/size为字符串类型,请在服务端做好参数校验与转换。- 启动/停止操作应是幂等的,重复调用不应产生副作用。