Skip to content

feat: 添加点赞/取消点赞 HTTP REST API#567

Open
lkisme wants to merge 1 commit intoxpzouying:mainfrom
lkisme:feature/http-like-only
Open

feat: 添加点赞/取消点赞 HTTP REST API#567
lkisme wants to merge 1 commit intoxpzouying:mainfrom
lkisme:feature/http-like-only

Conversation

@lkisme
Copy link
Copy Markdown

@lkisme lkisme commented Mar 10, 2026

新增:

  • POST /api/v1/feeds/like - 点赞/取消点赞笔记

新增:
- POST /api/v1/feeds/like - 点赞/取消点赞笔记
- LikeFeedRequest 请求结构体,使用 action 字段控制操作类型
- likeFeedHandler 处理函数

优化:
- 使用 action 字段替代 unlike 布尔字段,更明确的 API 设计
- 为 XsecToken 添加敏感信息注释
@lkisme lkisme requested a review from xpzouying as a code owner March 10, 2026 06:25
@kimi-agent-bot
Copy link
Copy Markdown
Contributor

🔍 Kimi Code Agent 正在自动审查此 PR...

@kimi-agent-bot
Copy link
Copy Markdown
Contributor

我来帮你审查这个 PR。首先获取 PR 的详细信息和代码变更。
让我查看一下相关的服务层代码和现有代码风格:
现在我有了完整的代码分析。让我总结审查结果:


PR 审查意见

结论:❌ 建议关闭此 PR

此 PR 存在严重问题:所要添加的功能在代码库中已经完整存在


🔴 主要问题

1. 功能重复(已存在)

以下代码在 main 分支中已经存在

项目 现有代码位置 PR 试图添加
LikeFeedRequest 结构体 types.go:120-125 types.go (重复定义)
likeFeedHandler 函数 handlers_api.go:351-402 handlers_api.go (重复定义)
路由 /feeds/like routes.go:57 routes.go (重复注册)

2. API 设计不一致

现有代码FavoriteFeedRequestLikeFeedRequest)采用统一的布尔字段风格:

type FavoriteFeedRequest struct {
    Unfavorite bool   `json:"unfavorite,omitempty"`  // true=取消收藏,false=收藏
}

type LikeFeedRequest struct {
    Unlike    bool   `json:"unlike,omitempty"`      // true=取消点赞,false=点赞
}

PR 的设计使用了字符串 action,破坏了与现有代码的一致性:

type LikeFeedRequest struct {
    Action    string `json:"action,omitempty"`      // "like"=点赞, "unlike"=取消点赞
}

3. 合并将导致编译错误

如果合并此 PR,将导致:

  • LikeFeedRequest 重复定义
  • likeFeedHandler 重复定义
  • 路由重复注册(虽然 Gin 允许重复注册,但会造成运行时混乱)

🟡 次要问题

  1. 缺少 API 文档更新HTTP_API_USAGE.md 未更新(不过此功能已有文档)

  2. 不必要的参数校验:代码中手动检查 feed_idxsec_token 是否为空,但结构体标签已包含 binding:"required",Gin 会自动校验


💡 建议

关闭此 PR,原因:

  1. 功能已完整实现,无需重复添加
  2. 现有 API 设计更统一(与收藏功能保持一致)

如果 PR 作者希望改进现有实现,可以:

  1. 基于最新 main 分支重新提交
  2. 或者创建新的 PR 优化现有 likeFeedHandler 的响应格式或错误处理

验证方式

# 查看现有功能
curl -X POST http://localhost:8080/api/v1/feeds/like \
  -H "Content-Type: application/json" \
  -d '{"feed_id": "xxx", "xsec_token": "yyy", "unlike": false}'

@lkisme
Copy link
Copy Markdown
Author

lkisme commented Mar 10, 2026

Kimi的检查似乎有问题,main中应该没有这些代码

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant