跳到主要内容

互动:评论 / 投票 / 收藏 / 点赞 / 关注

互动能力挂载到任意内容主体(文章、沸点、评论等),通过 EntityType + EntityId 关联。

评论(CommentController,/api/cms/comments

多级评论,支持系统级 / 用户级 / 内容级「可否评论」三重校验(ICommentService / ICommentManager)。

方法路由说明
GET/valid-commentable当前是否处于可评论环境(系统开关)
GET/subject-commentable指定主体(EntityType/EntityId)是否可评论
GET/query按主体分页查询评论列表
GET/{id}评论详情
POST/发表评论(CreateCommentReq,可指定根/回复)
DELETE/{id}删除评论

投票(PollController,/api/cms/polls

投票由 IPollService 管理,支持单选/多选、起止时间、选项计票。

方法路由说明
POST/创建投票(CreateUpdatePollReq,含选项)
PUT/{id}更新投票
DELETE/{id}删除投票
GET/{id}投票详情
GET/public公开投票列表
POST/vote投票(PollId + 选项 Id 列表)
GET/{id}/results计票结果(PollResultDto
GET/{pollId}/has-voted当前用户是否已投

管理端还可删除任意投票:DELETE /api/cms/admin/polls/{id}(需 CmsKit.Polls.*)。

收藏(BookmarkController,/api/cms/bookmarks

收藏夹 + 收藏项两层(IBookmarkService / IBookmarkItemService)。content 接口对文章/沸点做收藏或取消(幂等切换)。

方法路由说明
GET/收藏夹列表
GET/{id}收藏夹详情
POST/新建收藏夹(CreateUpdateBookmarkReq
PUT/{id}更新收藏夹
DELETE/{id}删除收藏夹
POST/content收藏/取消收藏某项内容(CreateCancelBookmarkItemReq
GET/users某收藏项的用户列表

点赞 / 踩(UserLikeController,/api/cms/user-like

IUserLikeService 提供点赞与「踩」两类反馈,均为幂等切换(CreateOrCancelAsync / CreateOrCancelDislikeAsync)。

方法路由说明
GET/点赞列表(可按 EntityType/EntityId 过滤)
POST/点赞 / 取消点赞
POST/dislike踩 / 取消踩

微反应 Boost(BoostController,/api/cms/boost

介于「点赞」与「评论」之间的轻量表情反应(BoostService / IBoostService),内容不超过若干字符。

方法路由说明
POST/创建/更新微反应(CreateBoostReq:SubjectId/SubjectType/Content)
DELETE/{subjectId}/{subjectType}取消微反应
GET/list某主体的微反应列表

关注 / 粉丝(UserSubscribeController,/api/cms/user-subscribe

IUserSubscribeService 维护用户间关注关系。

方法路由说明
GET/{subscribeUserId}是否已关注该用户
DELETE/{subscribeUserId}取消关注
POST/{subscribeUserId}关注
GET/我的关注列表
GET/fans我的粉丝列表
GET/user/{userId}指定用户的关注列表

用户标签(UserTagController,/api/cms/user-tag

用户可订阅标签,用于个性化推荐与聚合(IUserTagService)。

方法路由说明
POST/{tagId}订阅某标签
DELETE/{tagId}取消订阅
GET/subscribe-tags我订阅的标签
GET/subscribe-tag-users订阅了某标签的用户

互动日志(UserInteractionLogController,/api/cms/user-interaction-log

IUserInteractionLogService / IUserInteractionLogManager 记录并统计用户行为(浏览、点赞等),供推荐与看板使用。

方法路由说明
GET/list互动日志分页列表
GET/chart互动日志图表数据

开发示例

// 发表一条对文章的评论
await _commentService.CreateAsync(new CreateCommentReq
{
EntityType = nameof(Article),
EntityId = articleId,
Content = "写得很棒!"
});

// 给文章点赞(幂等)
await _userLikeService.CreateOrCancelAsync(new CreateUpdateUserLikeReq
{
SubjectType = /* Article */,
SubjectId = articleId
});

相关文档