Java SDK 指南
集成建议
- 统一通过 Gradle 或 Maven 管理 SDK 版本
- 把业务处理器与连接配置分层,避免耦合在启动类中
- 协议升级时同步检查生成代码和测试
并发模型
Java SDK 更适合作为长生命周期服务组件运行。线程池、超时和重试策略应由业务方显式控制。
OpenAPI 导入(Descriptor v2)
OpenAPIImporter.registerFromOpenAPI(client, spec, options, resolver) 在本地解析 OpenAPI 3 JSON,把每个 operation 转换为 FunctionDescriptor 并注册,handler 按 function ID(即 operationId,缺失时由 path 回退为 a.b.c)查找:
OpenAPIImporter.ImportOptions options = new OpenAPIImporter.ImportOptions()
.resourcePrefix("game")
.tagPrefix("svc-")
.defaultTimeoutMs(30000)
.continueOnError(true);
OpenAPIImporter.registerFromOpenAPIWithHandlers(
client, specJson, options,
Map.of("player_ban", (ctx, payload) -> "{\"ok\":true}"));转换规则与 Go SDK 一致:inputSchema 取 requestBody 的 application/json schema,outputSchema 取 200 响应 schema;x-resource/x-operation/x-permission/x-capability/x-execution/x-risk 直接映射到同名字段;x-approval: {required, policyKey} 映射到 approvalRequired/approvalPolicyKey。
capability枚举:collection_query|item_query|create|update|delete|action|task|reportexecution枚举:sync|taskrisk词表:safe|warning|high|dangerdefaultTimeoutMs为 Go 契约对齐项,当前 Java descriptor 尚无超时字段,仅记录不生效continueOnError开启后单个 operation 缺 handler 或注册失败会跳过并继续
Agent 入站请求与探针
Agent 会周期性向 provider 下发 ProviderHeartbeatRequest 探针(provider keepalive)。SDK 已内置处理:回空 ProviderHeartbeatResponse(pong),无需业务代码参与。不响应探针会被 agent 判定为死会话并摘除注册。
遇到无法识别的入站消息类型时,SDK 抛出的 CroupierException 会携带消息类型名(如 Unsupported local request type: RegisterRequest (0x...)),便于日志定位。
