Skip to main content
/v2 前缀(src/hono/feedv2/index.ts)下的查询端点。所有列表用 cursor 分页,每页 20 条cursor 传上一页最后一条的 created_atcreated_at DESC 排序。

GET /v2/me/feeds

当前用户自己的 feed,不过滤 flag(owner 看得到全部)。
  • 认证必需 Bearer JWT(supabaseAuth(),:112)。无 token → 401。用 jwtPayload.subowner_id
  • Querycursor(可选,created_at
{
  feeds: FeedV2Row[],
  nextCursor: string | null   // 满 20 条时为最后一行 created_at,否则 null
}
FeedV2Rowsrc/hono/feedv2/models.ts):
{
  id: string,
  owner_id: string,
  medias: Array<{ type: "image" | "video", data: ... }>,
  caption: string | null,
  flag: string[],
  description: string | null,
  created_at: string
}

GET /v2/u/:id/feeds

指定用户的公开 feed,任何人可看过滤 flagbanned / dmca / nsfw / shadow 的条目(PG not ... ov 数组运算)。
  • 认证:可选 JWT(optionalSupabaseAuth(),:141)。无 token 也能访问;不论是否登录,过滤规则一致(不区分 owner)。
  • Pathid — 目标用户 ID
  • Querycursor
  • 响应:同 /v2/me/feeds{ feeds, nextCursor }

GET /v2/feed/:id

单条 feed。owner 看全部;他人若 feed 命中任一 hidden flag(banned/dmca/nsfw/shadow)则返回 404。
  • 认证:可选 JWT
  • 响应:单个 FeedV2Row
状态含义
404feed 不存在,或对非 owner 隐藏

GET /v2/hashtag/:slug

hashtag 实体元数据。slug 先归一化(去前导 #、小写、仅留字母数字、长度 1–50),非法返回 400。
  • 认证:无
  • 响应
{
  id: string,
  slug: string,
  description: string | null,
  cover_medias: unknown | null,
  created_at: string
}
状态含义
400slug 非法
404hashtag 不存在

src/hono/feedv2/index.ts

相关