API 文档
接口清单
| 方法 | 路径 | 说明 |
|---|---|---|
GET | /api/v1/posts | 动态列表(游标分页 + 过滤) |
GET | /api/v1/posts/:id | 单条详情 |
GET | /api/v1/sources | 来源平台与条数 |
GET | /api/v1/tags | 标签与计数 |
GET | /api/v1/stats | 总数与更新时间 |
GET | /api/v1/health | 健康检查(不校验白名单) |
列表参数
| 参数 | 类型 | 默认 | 说明 |
|---|---|---|---|
cursor | string | — | 上一页返回的 next_cursor |
limit | 1-100 | 20 | 每页条数 |
source | string | — | 来源,逗号分隔多值 |
tag | string | — | 标签,逗号分隔 |
q | string | — | 关键词,匹配标题与正文,≤64 字符 |
since / until | ISO8601 | — | 时间区间 |
lang | string | — | 语言 |
访问控制
请求需带 Origin(缺失时取 Referer 的 origin 部分),命中白名单正则才放行, 否则返回 403。白名单用于约束调用秩序与配额,不是强鉴权——数据本身是公开动态。
限流:单 IP 60 秒 120 次;无 Origin 或未命中白名单 60 秒 20 次。
示例
curl -H "Origin: https://www.fzd1.com" \
"https://feed.fzd1.com/api/v1/posts?limit=5&source=x"响应里 meta.next_cursor 用于翻页,meta.has_more 为 false 时停止。 API 只保留最近 2000 条,更早内容请在站点归档页浏览。
错误码
| HTTP | code | 含义 |
|---|---|---|
400 | INVALID_PARAM | 参数不合法 |
403 | ORIGIN_NOT_ALLOWED | 来源未命中白名单 |
404 | NOT_FOUND | 资源不存在 |
429 | RATE_LIMITED | 触发限流,带 Retry-After |
500 | INTERNAL_ERROR | 异常,带 request_id |
错误响应形如:{ "error": { "code": "...", "message": "...", "request_id": "..." } }