Skip to content

统一前后端 API 查询语法为 Spec 正典格式,重写相关文档 #987

@xuyushun441-sys

Description

@xuyushun441-sys

背景

当前项目的前后端 API 查询语法文档存在和 objectstack-ai/spec 正典(canonical)协议不一致的情况:

  • 协议层 Zod Schema(filter.zod.tsquery.zod.ts)已规范(where + $op + orderBy ...)。
  • 但文档如 query-syntax.mdxdata-engine.mdx 存在 filters/tuple/三元组/sort/group_by/aggregate 等用法偏差。

问题

  • 前后端查询语法未统一,影响开发者体验、协议一致性和长期可维护性。
  • 文档示例容易造成迷惑,降低开发效率。

解决方案

  1. 重写 content/docs/protocol/objectql/query-syntax.mdx,所有示例、接口定义、字段名、语法对齐 @objectstack/spec 下的 QuerySchema 及相关正典 Zod 类型。
    • 必须全部采用 where + MongoDB-style $op 语法(对象语法),淘汰 filters/tuple/三元组等老格式。
    • 排序 orderBy,分组 groupBy,聚合 aggregations 等字段全部统一,示例代码严格遵循最新 Spec。
    • 旧内容移至专门的 legacy/compat 说明节。
  2. 重写 content/docs/guides/contracts/data-engine.mdx,匹配真实 IDataEngine 合同签名与协议语法。
    • 查询相关统一为 find/findOne/count/aggregate,所有 option 字段与正典命名一致(如 where, orderBy, offset, fields, aggregations...)。
  3. 在文档中明确声明:"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

Metadata

Metadata

Labels

documentationImprovements or additions to documentation

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions