Files
HAOVP/backend/API_TEST_REPORT.md
T

10 KiB
Raw Blame History

Backend API Test Report

更新时间:2026-04-18

说明

汇总

  • auth + user:29 项,29 通过,0 失败
  • content + comment + recommend:63 项,63 通过,0 失败
  • admin:23 项,23 通过,0 失败,0 未测

最新重测

  • 运行态排查确认:
    • video-user、video-comment 容器此前实际运行的是旧 JAR,和本地源码不一致
    • 重新构建并覆盖容器内 /app/app.jar 后,video-user、video-content、video-comment 已与本地源码对齐
  • 公开接口放行修复已生效:
    • GET /user/profile/public/{userId} 现为 200
    • GET /user/profile/search 现为 200
    • GET /user/follow/following/{userId} 现为 200
    • GET /user/follow/followers/{userId} 现为 200
    • GET /content/category/tree 现为 200
    • GET /content/tag/list 现为 200
    • GET /content/tag/page 现为 200
  • POST /content/video 已打通,最新实测返回 200,成功创建视频 id=17
  • 评论链有进展:
    • GET /comment/public/list?videoId=17... 返回 200
    • 评论已成功落库到 videoId=17
    • POST /comment 已恢复为正常快速返回,最新实测 200,耗时约 1207ms
    • POST /comment/reply 已返回 200
    • POST /comment/like/{id} 已返回 200
    • GET /comment/reply/public/list/{commentId} 已返回 200
  • 评论交互短测已补齐:
    • POST /comment:200,约 279ms
    • POST /comment/like/{id}:200,约 294ms
    • DELETE /comment/like/{id}:200,约 291ms
    • POST /comment/reply:200,约 281ms
    • GET /comment/reply/public/list/{commentId}:200,约 264ms
    • GET /comment/reply/public/hot/{commentId}:200,约 258ms
    • POST /comment/reply/like/{id}:200,约 262ms
    • DELETE /comment/reply/like/{id}:200,约 263ms
    • DELETE /comment/reply/{id}:200,约 284ms
    • DELETE /comment/{id}:200,约 263ms
  • 评论详情/置顶链复测:
    • GET /comment/public/detail/{id}:200,约 718ms
    • POST /comment/top/{id}?videoId=17:200,约 426ms
    • DELETE /comment/top/{id}?videoId=17:200,约 333ms
    • top/untop 需要“视频作者身份 + 正确的 videoId 参数”;旧失败结论来自测试前提不成立
    • 服务端已补充校验:评论必须属于传入的 videoId
  • 视频主链短测已补齐:
    • GET /content/video/public/17:200,约 281ms
    • GET /content/video/17:200,约 312ms
    • PUT /content/video:200,约 370ms
    • GET /content/tag/video/17:200,约 248ms
    • POST /content/video/like/17:200,约 325ms
    • DELETE /content/video/like/17:200,约 303ms
    • POST /content/video/coin/17?amount=1:200,约 262ms
    • POST /content/video/share/17?platform=wechat:200,约 275ms
    • POST /content/video/play:200,约 295ms
    • POST /content/video/favorite:200,约 345ms
    • DELETE /content/video/favorite/17:200,约 270ms
    • GET /content/video/user/30:作者登录视角已恢复可见审核中视频
    • POST /content/video/favorite 的慢失败根因是收藏数同步回写 video-user 时遇到锁等待,现已改为 afterCommit + async best-effort
  • 内容链残余现象:
    • 视频详情/视频列表里的 userNickname、userAvatar 为空问题已修复
    • 根因是 video-content 前台详情/列表里对 Feign 返回码使用了 Integer == Integer 比较,远程 200 没命中成功分支
  • 弹幕和统计链已打通:
    • POST /content/danmaku:200,约 411ms
    • GET /content/danmaku/all/17:200,约 270ms
    • GET /content/danmaku/time?videoId=17&startTime=0&endTime=30:200,约 263ms
    • GET /content/stat/daily/17?...:200,约 254ms
    • GET /content/stat/play/trend/17?...:200,约 245ms
    • GET /content/stat/interaction/17:200,约 251ms
    • RocketMQ 路由当前仍异常,但 video-content 已补全主表降级更新;弹幕发送后 danmakuCount 已能从 0 正常变为 1
  • 后台视频审核链已打通:
    • POST /admin/platform/content/video/review/17?status=1&reason=ok:200
    • GET /admin/platform/content/video/17:200
    • 根因一:video-admin -> video-content 之前没有透传 adminId
    • 根因二:content_video_review.reviewer_id 外键错误指向了 video_auth.auth_user
    • 现已改为透传 X-Admin-Id,并把审核记录外键改到 video_admin.admin_user
  • 最后一轮收尾项:
    • GET /auth/username/30:200,已作为公开接口放行
    • GET /admin/platform/comment/10:200
    • PUT /admin/platform/content/video/disable/17:200
    • 为避免环境被留在下架状态,videoId=17 已重新审核恢复为发布状态
  • 原未测接口空白已补齐:
    • POST /admin/auth/logout:200
    • GET /auth/admin/login/stats:200
    • PUT /auth/admin/reset-password/{userId}:200
    • PUT /auth/admin/lock/{userId}/{locked}:200
    • POST /content/video/upload:200
    • DELETE /content/video/{id}:200
    • POST /content/video/review/{videoId}:内部审核接口已打通,普通用户访问已 403
    • GET /content/category/admin/list:200
    • POST /content/category/admin:200
    • PUT /content/category/admin:200
    • DELETE /content/category/admin/{categoryId}:200
    • DELETE /content/tag/{id}:200
    • POST /recommend/behavior:200
    • POST /recommend/interest/update:200
    • GET /recommend/similar/{videoId}:200
    • GET /recommend/tag/{tagId}:200
    • recommend/interest/update 的 500 根因是 MyBatis Map<Long, Float> foreach 写法错误,现已修复
  • 登录链复测:
    • POST /auth/login 最新实测 200,耗时约 994ms

已通过

核心认证与用户链

  • POST /auth/register
  • POST /auth/login
  • POST /auth/login:不带验证码会被拦截
  • POST /auth/refresh
  • GET /auth/username/{userId}
  • GET /auth/current
  • GET /user/profile/current
  • PUT /user/profile
  • GET /user/setting
  • PUT /user/setting
  • POST /user/follow/{followId}
  • GET /user/follow/check/{followId}
  • GET /user/notification/list
  • GET /user/notification/unread/count
  • PUT /user/notification/read
  • POST /user/message
  • GET /user/message/list
  • GET /user/message/detail/{targetId}
  • GET /user/message/unread/count
  • PUT /user/message/read/{senderId}
  • POST /auth/logout
  • DELETE /user/follow/{followId}
  • GET /auth/admin/login/stats
  • PUT /auth/admin/reset-password/{userId}
  • PUT /auth/admin/lock/{userId}/{locked}

内容/评论/推荐中已确认正常的部分

  • GET /content/category/list
  • GET /content/category/tree
  • POST /content/category
  • PUT /content/category
  • DELETE /content/category/{id}
  • POST /content/tag
  • GET /content/tag/list
  • GET /content/tag/page
  • POST /content/favorite
  • GET /content/favorite/list
  • PUT /content/favorite
  • POST /content/video
  • POST /content/video/upload
  • GET /content/video/public/{id}
  • GET /content/video/public/list
  • GET /content/video/{id}
  • GET /content/video/list
  • GET /content/video/user/{userId}
  • PUT /content/video
  • DELETE /content/video/{id}
  • POST /content/video/review/{videoId}
  • GET /content/tag/video/{videoId}
  • POST /content/video/like/{videoId}
  • DELETE /content/video/like/{videoId}
  • POST /content/video/coin/{videoId}
  • POST /content/video/share/{videoId}
  • POST /content/video/play
  • POST /content/video/favorite
  • GET /content/favorite/{favoriteId}/videos
  • DELETE /content/video/favorite/{videoId}
  • DELETE /content/favorite/{id}
  • GET /content/category/admin/list
  • POST /content/category/admin
  • PUT /content/category/admin
  • DELETE /content/category/admin/{categoryId}
  • DELETE /content/tag/{id}
  • POST /content/danmaku
  • GET /content/danmaku/all/{videoId}
  • GET /content/danmaku/time
  • GET /content/stat/daily/{videoId}
  • GET /content/stat/play/trend/{videoId}
  • GET /content/stat/interaction/{videoId}
  • POST /recommend/behavior
  • POST /recommend/interest/update
  • GET /recommend/similar/{videoId}
  • GET /recommend/tag/{tagId}
  • GET /comment/public/list
  • GET /comment/public/detail/{id}
  • GET /comment/public/stat/{videoId}
  • POST /comment
  • DELETE /comment/{id}
  • POST /comment/reply
  • POST /comment/like/{id}
  • DELETE /comment/like/{id}
  • POST /comment/top/{id}
  • DELETE /comment/top/{id}
  • GET /comment/reply/public/list/{commentId}
  • GET /comment/reply/public/hot/{commentId}
  • POST /comment/reply/like/{id}
  • DELETE /comment/reply/like/{id}
  • DELETE /comment/reply/{id}

后台链

  • POST /admin/auth/login
  • POST /admin/auth/login:不带验证码会被拦截
  • POST /admin/auth/logout
  • GET /admin/auth/info
  • GET /admin/platform/user/list
  • GET /admin/platform/user/{userId}
  • PUT /admin/platform/user/{userId}/status/{status}
  • PUT /admin/platform/user/{userId}/reset-password
  • POST /auth/login:禁用用户后登录被拦截
  • POST /auth/login:后台重置密码后可重新登录
  • GET /admin/platform/content/category/list
  • POST /admin/platform/content/category
  • PUT /admin/platform/content/category
  • DELETE /admin/platform/content/category/{categoryId}
  • GET /admin/platform/comment/list
  • GET /admin/platform/comment/stats
  • GET /admin/platform/comment/{commentId}
  • GET /admin/platform/content/video/list
  • GET /admin/platform/content/video/{videoId}
  • POST /admin/platform/content/video/review/{videoId}
  • PUT /admin/platform/content/video/disable/{videoId}
  • GET /admin/dashboard/stats