/v2 前缀(src/hono/feedv2/index.ts)下的查询端点。所有列表用 cursor 分页,每页 20 条;cursor 传上一页最后一条的 created_at,created_at DESC 排序。
GET /v2/me/feeds
当前用户自己的 feed,不过滤 flag(owner 看得到全部)。- 认证:必需 Bearer JWT(
supabaseAuth(),:112)。无 token → 401。用jwtPayload.sub作owner_id。 - Query:
cursor(可选,created_at)
FeedV2Row(src/hono/feedv2/models.ts):
GET /v2/u/:id/feeds
指定用户的公开 feed,任何人可看。过滤flag 含 banned / dmca / nsfw / shadow 的条目(PG not ... ov 数组运算)。
- 认证:可选 JWT(
optionalSupabaseAuth(),:141)。无 token 也能访问;不论是否登录,过滤规则一致(不区分 owner)。 - Path:
id— 目标用户 ID - Query:
cursor - 响应:同
/v2/me/feeds({ feeds, nextCursor })
GET /v2/feed/:id
单条 feed。owner 看全部;他人若 feed 命中任一 hidden flag(banned/dmca/nsfw/shadow)则返回 404。- 认证:可选 JWT
- 响应:单个
FeedV2Row
| 状态 | 含义 |
|---|---|
| 404 | feed 不存在,或对非 owner 隐藏 |
GET /v2/hashtag/:slug
hashtag 实体元数据。slug 先归一化(去前导 #、小写、仅留字母数字、长度 1–50),非法返回 400。
- 认证:无
- 响应:
| 状态 | 含义 |
|---|---|
| 400 | slug 非法 |
| 404 | hashtag 不存在 |
源
src/hono/feedv2/index.ts