跳转到内容

社区 API

社区 JSON 位于 /api/v1/community 下。请求的内容为公开内容时,公开读取不需要会话。变更操作要求 Better Auth 会话、已验证邮箱、活动社区资料,以及同源请求。

MethodPathAuthPurpose
GET/api/v1/community/postsOptional动态、搜索、标签和游标分页。
POST/api/v1/community/postsRequired创建帖子。
GET/api/v1/community/posts/{postId}Optional读取帖子和评论。
PATCH / DELETE/api/v1/community/posts/{postId}Author编辑或删除帖子。
POST/api/v1/community/posts/{postId}/commentsRequired创建评论或回复。
PUT/api/v1/community/posts/{postId}/reactionRequired切换点赞。
PUT/api/v1/community/posts/{postId}/bookmarkRequired切换书签。
PUT/api/v1/community/posts/{postId}/pinAuthor置顶或取消置顶。
POST/api/v1/community/posts/{postId}/archiveAuthor归档。
POST/api/v1/community/posts/{postId}/restoreAuthor恢复。
GET/api/v1/community/notificationsRequired列出或统计通知。
PUT/api/v1/community/notifications/{notificationId}/readRequired将一条通知标为已读。
PUT/api/v1/community/notifications/read-allRequired将所有可见通知标为已读。
GET/api/v1/community/tagsOptional列出带有可见帖子计数的标签。
GET/api/v1/community/tags/preferencesRequired列出标签偏好设置。
PUT/api/v1/community/tags/{tag}/preferenceRequired设置 follow、mute 或 null。
PUT/api/v1/community/users/{uid}/{follow|block|mute}Required设置用户关系。
PUT/api/v1/community/posts/{postId}/feedbackRequired设置发现反馈。
DELETE/api/v1/community/me/post-feedbackRequired清除发现反馈。
POST/api/v1/community/reportsRequired举报帖子、评论或用户。
PATCH / DELETE/api/v1/community/comments/{commentId}Author编辑或删除评论。
PUT/api/v1/community/comments/{commentId}/reactionRequired切换评论点赞。
GET/api/v1/community/me/commentsRequired列出已登录用户的评论。

请求和响应字段详情请参阅帖子、资料和上传。

帖子响应包含规范的社区 DTO 字段:

{
"id": "post-uuid-from-the-service",
"title": "A post title",
"body": "Post body",
"visibility": "public",
"moderationStatus": "allow",
"state": "active",
"version": 1,
"createdAt": 1730000000000,
"updatedAt": 1730000000000,
"lastEditedAt": 1730000000000,
"commentCount": 0,
"likeCount": 0,
"pinnedAt": null,
"archivedAt": null,
"commentsLockedAt": null,
"authorUid": 1001,
"authorName": "Example user",
"authorImage": null,
"avatarSeed": "opaque-avatar-seed",
"device": null,
"ipLocation": null,
"tags": [],
"attachments": []
}

示例中的 ID 和 avatar seed 是响应字段的说明,不是客户端应自行构造的值。 帖子详情 envelope 会在 viewer 下单独携带与查看者相关的标记;列表项会在列表响应中携带各自的 viewer 标记。

用户创建的文本会在发布前接受检查。响应可能是 201 或带有 moderationQueued 的 202,帖子或评论在审核完成前可能保持 pending。客户端应显示返回的对象及其状态,不要假定每次成功写入都会立即可搜索。