-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
任务背景
核心 expand(关系字段展开)能力由 @objectstack/spec 的 Engine reference 实现提供。objectstack-ai/objectql 作为可选加载的增强项目,需要确保其 Protocol 层(OData/GraphQL/JSON-RPC)正确解析 $expand 参数并传递给 Engine。
当前状态
- OData V4 plugin 已有完整的
expandNavigationProperties()实现(在 Protocol 层二次查询) - JSON-RPC plugin 的
findData()透传 expand 给 Engine - GraphQL plugin 通过 DataLoader 解决 N+1,但未显式支持 expand 参数
任务目标
- 对齐验证:确保 objectql 的三个 Protocol adapter 都能正确将 $expand 参数传递给 spec engine
- OData 去重:评估是否可以将 OData plugin 的
expandNavigationProperties委托给 spec engine 层(避免重复实现),保留 OData-specific 语法解析 - JSON-RPC 增强:确保
findData()中 expand 参数被正确解析为DataEngineQueryOptions.populate - Protocol TCK 测试:在 protocol-tck 中增加 expand 相关的一致性测试用例
- 文档更新:更新 OData/JSON-RPC/GraphQL 协议文档,说明 $expand 的完整支持状态
实现理由
- objectql 的 Protocol layer 是连接 HTTP 请求与 Engine 的桥梁,必须正确传递 expand
- 与 spec engine 的 reference 实现保持行为一致,避免碎片化
- OData 已有实现可作为参照,但长期应统一到 Engine 层
关联任务
- Spec: [协议层] 完善 $expand/lookup/关系字段展开的规范及 Engine Reference 实现
- ObjectUI: [跨仓库] 支持自动注入 $expand
实现完成后运行 tests、更新相关 issues,并补充 ROADMAP.md。
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels