函数注册
基本流程
- 定义
FunctionDescriptor - 绑定处理器
- 在
Connect()之前完成注册
Descriptor v2 执行契约
每个 descriptor 应声明完整的 v2 执行契约:
capability:collection_query/item_query/create/update/delete/action/task/reportexecution:sync/task(批量扇出等长耗时操作用task)- 高危操作(如
risk = "danger"/"high")可声明approval_required = true并附带approval_policy_key
语义分配示例:列表 → collection_query + sync;单查 → item_query + sync;创建 → create + sync;批量 → action + task。完整示例见 sdks/cpp/examples/game_demo.cpp。
OpenAPI 导入
已有 OpenAPI 3 文档时可用 RegisterFromOpenAPI(croupier/sdk/openapi_importer.h)批量导入:
cpp
using croupier::sdk::openapi::ImportOptions;
using croupier::sdk::openapi::RegisterFromOpenAPIWithHandlers;
ImportOptions options;
options.resource_prefix = "game";
options.tag_prefix = "svc-";
options.default_timeout_ms = 60000;
options.continue_on_error = true;
std::map<std::string, croupier::sdk::FunctionHandler> handlers;
handlers["player_ban"] = [](const std::string&, const std::string& payload) {
return std::string("{\"status\":\"ok\"}");
};
RegisterFromOpenAPIWithHandlers(client, spec_json, options, handlers);转换规则与 Go SDK 一致:operationId(缺失时按 path 转 a.b.c)作为函数 ID;summary 作为名称;requestBody / 200 响应的 application/json schema 转为输入输出契约;x-resource / x-operation / x-permission / x-risk / x-capability / x-execution 映射到对应字段;x-approval(required / policyKey)映射审批字段。
建议
- 函数 ID 采用
[namespace.]resource.operation - 高风险操作设置
risk,必要时声明审批字段 - 处理器保持无状态或显式管理状态
