背景
当前项目的前后端 API 查询语法文档存在和 objectstack-ai/spec 正典(canonical)协议不一致的情况:
- 协议层 Zod Schema(
filter.zod.ts、query.zod.ts)已规范(where + $op + orderBy ...)。
- 但文档如
query-syntax.mdx、data-engine.mdx 存在 filters/tuple/三元组/sort/group_by/aggregate 等用法偏差。
问题
- 前后端查询语法未统一,影响开发者体验、协议一致性和长期可维护性。
- 文档示例容易造成迷惑,降低开发效率。
解决方案
- 重写
content/docs/protocol/objectql/query-syntax.mdx,所有示例、接口定义、字段名、语法对齐 @objectstack/spec 下的 QuerySchema 及相关正典 Zod 类型。
- 必须全部采用
where + MongoDB-style $op 语法(对象语法),淘汰 filters/tuple/三元组等老格式。
- 排序
orderBy,分组 groupBy,聚合 aggregations 等字段全部统一,示例代码严格遵循最新 Spec。
- 旧内容移至专门的 legacy/compat 说明节。
- 重写
content/docs/guides/contracts/data-engine.mdx,匹配真实 IDataEngine 合同签名与协议语法。
- 查询相关统一为
find/findOne/count/aggregate,所有 option 字段与正典命名一致(如 where, orderBy, offset, fields, aggregations...)。
- 在文档中明确声明:"tuple/filters/三元组"仅为部分 UI 层 builder 的输入格式,进入协议必须转换为 Spec 正典格式。
参考资料
packages/spec/src/data/query.zod.ts
packages/spec/src/data/filter.zod.ts
packages/spec/src/data/data-engine.zod.ts
packages/spec/src/contracts/data-engine.ts
是否需要我来直接提交 PR?
优先级:高
目标:长期维护、全栈开发一致性、对外开放 API 一致性
标签:documentation, query syntax, spec
完成后:务必回归测试并更新 CHANGELOG.md
背景
当前项目的前后端 API 查询语法文档存在和 objectstack-ai/spec 正典(canonical)协议不一致的情况:
filter.zod.ts、query.zod.ts)已规范(where + $op + orderBy ...)。query-syntax.mdx、data-engine.mdx存在 filters/tuple/三元组/sort/group_by/aggregate 等用法偏差。问题
解决方案
content/docs/protocol/objectql/query-syntax.mdx,所有示例、接口定义、字段名、语法对齐@objectstack/spec下的QuerySchema及相关正典 Zod 类型。where+ MongoDB-style$op语法(对象语法),淘汰 filters/tuple/三元组等老格式。orderBy,分组groupBy,聚合aggregations等字段全部统一,示例代码严格遵循最新 Spec。content/docs/guides/contracts/data-engine.mdx,匹配真实 IDataEngine 合同签名与协议语法。find/findOne/count/aggregate,所有 option 字段与正典命名一致(如 where, orderBy, offset, fields, aggregations...)。参考资料
packages/spec/src/data/query.zod.tspackages/spec/src/data/filter.zod.tspackages/spec/src/data/data-engine.zod.tspackages/spec/src/contracts/data-engine.ts是否需要我来直接提交 PR?