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

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions