路径
POST /v2/publish
feeds_v2 是新的社交表:一条 feed 可携带多个媒体(image / video 混排)和一段 caption,hashtag 从 caption 中自动抠取。Legacy feed 表(单图/单视频)仍在用,见 POST /publish/。认证
Bearer JWT(supabaseAuth())
请求 Body
caption 里抠(正则:# + 1–50 个 Unicode 字母数字,含 CJK;小写、保序去重)。
响应
发布流程(三步,非原子)
Supabase JS 不支持事务,三步分别执行,后两步失败仅记日志、feed 已写则保留:UPSERT hashtags
对 caption 抠出的每个 slug
UPSERT hashtags (slug) ON CONFLICT slug,收集 hashtag_id。失败仅 appLog.error。feed_v2_published(hashtag_count / media_count / media_types)。
错误
| 状态 | 含义 |
|---|---|
| 400 | Body 不符合 schema(如 medias 为空) |
| 401 | 未授权 |
| 500 | feeds_v2 写入失败 |
源
src/hono/feedv2/index.ts(POST /publish)、src/hono/feedv2/normalize.ts(caption / hashtag 解析)