Skip to content

Console MSW handler should use MSWPlugin, not custom HTTP handlers; filter/sort/top fail otherwise #859

@hotlong

Description

@hotlong

Bug Summary

ObjectUI Console (MSW 模式) 使用自定义 createHandlers 手写 HTTP handler,绕过了 ObjectStack 协议栈。结果导致 filter/sort/top 等所有查询参数失效,server 模式下正常。

复现方式

  1. 启动 dev server (pnpm dev)。
  2. 访问 /api/v1/data/contact?top=100&sort=name&filter=["priority","=","medium"]
  3. 发现过滤条件没有���效,返回所有数据。
  4. server 模式 (pnpm dev:server) 下过滤正常。

问题分析

  • apps/console/src/mocks/handlers.ts 的 Data handler 自己解析 query 参数并直接调用 driver.find(),不走 ObjectStack 协议 protocol。
  • filter/sort/top 等参数解析失效,实际行为和 dev server 不一致。
  • examples/msw-todo/QUICKSTART.md 推荐的写法是直接使用 @objectstack/plugin-msw,完全无需手写 handler。

最佳解决方案

  • 删除 createHandlers + hand-written handlers,直接在 Console 的 MSW 模式下 use(new MSWPlugin({ baseUrl: '/api/v1' }))。
  • 这样所有 HTTP 路由都和 server 模式一致,filter/sort/top/pagination/metadata 自动正确处理。
  • 维护性最好,所有协议更新自动同步。

建议修复步骤

  1. 移除 apps/console/src/mocks/handlers.ts (或者大幅简化,转为 use MSWPlugin)。
  2. 在 console mock 启动逻辑里直接 use(new MSWPlugin({ baseUrl: '/api/v1' }))。
  3. 对齐 QuickStart / msw-todo 示例。
  4. 补充测试:filter/sort/top/pagination 必须能通过。

开发任务完成之后都应该运行test,并且相关的问题,然后更新roadmap。

相关 issue: #858

Metadata

Metadata

Labels

bugSomething isn't working

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions