Skip to content

feed api #756

Description

@hotlong

🎯 目标

打通 Feed/Chatter API 从协议到 Client SDK 的"最后一公里"。Schema、Contract、Service 均已完成,缺少 Route Handler 和 Client SDK 接入。

📊 当前状态

层级文件状态
Schemaspec/src/data/feed.zod.ts
API Protocolspec/src/api/feed-api.zod.ts (14 个端点)
Contractspec/src/contracts/feed-service.ts (IFeedService)
Service Implservices/service-feed/InMemoryFeedAdapter (40+ tests)
Route Handlerobjectql/protocol.ts → Feed 方法🔴 缺失
Client SDKclient.feed.* namespace🔴 缺失

📋 Tasks

1. Route Handler (packages/objectql)

ObjectStackProtocolImplementation 中新增 14 个 Feed 方法,对应 FeedApiContracts

  • listFeedGET /api/data/:object/:recordId/feed
  • createFeedItemPOST /api/data/:object/:recordId/feed
  • updateFeedItemPUT /api/data/:object/:recordId/feed/:feedId
  • deleteFeedItemDELETE /api/data/:object/:recordId/feed/:feedId
  • addReactionPOST /api/data/:object/:recordId/feed/:feedId/reactions
  • removeReactionDELETE /api/data/:object/:recordId/feed/:feedId/reactions/:emoji
  • pinFeedItem / unpinFeedItem → Pin/Unpin endpoints
  • starFeedItem / unstarFeedItem → Star/Unstar endpoints
  • searchFeedGET /api/data/:object/:recordId/feed/search
  • getChangelogGET /api/data/:object/:recordId/changelog
  • subscribe / unsubscribe → Record subscription endpoints

2. Client SDK (packages/client)

  • ObjectStackClient 中新增 feed namespace,包含 14 个方法
  • getRoute() 中新增 feed 路由类型(使用 /api/data 子路径模式)
  • 新增 client.feed.* 的类型导出
  • 编写 MSW 测试验证 Client ↔ Server 集成

3. Discovery 增强

  • getDiscovery() 返回的 services 中新增 feed service 状态
  • capabilities 中新增 feed: truecomments: true

4. 测试

  • Route handler 单元测试
  • Client SDK MSW 集成测试
  • 验证 FeedApiContracts 的 input/output schema 与实际请求/响应一致

🔗 关联

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions