Skip to content

refactor(dashboard): remove unused web APIs and dead code - #2569

Merged
wklken merged 3 commits into
TencentBlueKing:masterfrom
wklken:refactor_unused_apis
Mar 24, 2026
Merged

refactor(dashboard): remove unused web APIs and dead code#2569
wklken merged 3 commits into
TencentBlueKing:masterfrom
wklken:refactor_unused_apis

Conversation

@wklken

@wklken wklken commented Mar 23, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Removed dead API endpoints never called by the frontend: MCPServerUpdateLabelsApi, AlarmRecordSummaryListApi, and ReleaseHistoryRetrieveApi
  • Deleted the biz/monitor module (MonitorHandler) which was only used by the removed AlarmRecordSummaryListApi
  • Commented out unused URL routes with FIXME markers for safe staged removal in the future
  • Removed all corresponding serializers and test files for the deleted code

What changed

Area Change
mcp_server Removed MCPServerUpdateLabelsApi view, serializer, and URL
monitor Removed AlarmRecordSummaryListApi, MonitorHandler, related serializers
release Removed ReleaseHistoryRetrieveApi view and URL
biz/monitor Deleted entire module (no longer referenced)
urls.py Commented out top-level route for alarm record summary
Tests Removed test files for all deleted code

Made with Cursor

Why this change was needed:
These APIs were never called by the frontend and were cluttering the codebase.
Removing dead code reduces cognitive overhead and makes the codebase easier
to maintain and reason about.

What changed:
- Removed MCPServerUpdateLabelsApi and its serializer (mcp_server module)
- Removed AlarmRecordSummaryListApi, its serializers, and MonitorHandler biz layer (monitor module)
- Removed ReleaseHistoryRetrieveApi and its route (release module)
- Commented out unused URL routes with FIXME markers for safe future removal
- Deleted biz/monitor module (MonitorHandler class no longer needed)
- Removed corresponding test files for deleted code

Problem solved:
Dead API endpoints and their supporting layers are no longer carried in the
codebase. Future developers won't waste time understanding code that is never
invoked. The FIXME comments allow a staged removal if any edge case surfaces.
@wklken
wklken requested a review from Han-Ya-Jun March 23, 2026 08:06

@wklken wklken left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

变更概述:移除未使用的 Web API 端点及相关死代码,包括 MCPServerUpdateLabelsApiAlarmRecordSummaryListApiReleaseHistoryRetrieveApiUserAuthTypeRetrieveApi,以及整个 biz/monitor 模块及其测试代码。部分 URL 路由通过注释方式标记待移除。

发现的问题

  1. 导入未清理 (src/dashboard/apigateway/apigateway/tests/apis/web/release/test_views.py:32)

    • create_gateway 导入已不被使用(TestReleaseHistoryRetrieveApi 测试类已移除),但导入语句未删除。
    • 建议:删除未使用的导入 from apigateway.tests.utils.testing import dummy_time(保留 dummy_time 检查正确)
    • 实际应删除:create_gateway 不再使用
  2. 变更不一致 (多个 url.py 文件)

    • View 类和 Serializer 已完全删除,但 URL 路由仅注释未移除
    • 已删除的 View 类:MCPServerUpdateLabelsApiReleaseHistoryRetrieveApiUserAuthTypeRetrieveApiAlarmRecordSummaryListApi
    • 问题:如果 View 类已删除,对应的注释 URL 永远无法恢复功能,注释无意义
    • 建议:将注释的 URL 一并删除,或在 URL 注释中注明 View 类已删除
  3. 无关变更 (src/dashboard/AGENTS.md)

    • 增加 Git & Pull Request Workflow 文档与本次 PR 主题(移除死代码)无关
    • 建议:文档变更应单独提交 PR,保持 PR 单一职责

优点

  1. 正确的代码删除:完整移除了不再使用的 View 类、Serializer、整个 business 模块及其测试
  2. 测试同步清理:对应的测试文件和测试类也被正确移除
  3. 变更范围清晰:删除的代码确实未被前端调用,属于真正的死代码清理
  4. 日期标记:注释带有 "2026-03-23" 日期标记,便于后续追溯

总结

该 PR 主要完成了死代码清理工作,移除了未被前端调用的 API 端点及相关代码。整体方向正确,清理较为彻底。

建议修复:删除测试文件中未使用的导入,移除指向已删除 View 类的 URL 注释,无关文档变更建议拆分。修复后可以合并。


由 Claude 自动 review | 基于默认 Review 规范 [from openclaw-internal]

@wklken wklken left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

变更概述:本PR删除了4个未使用的Web API(MCPServerUpdateLabelsApi、AlarmRecordSummaryListApi、ReleaseHistoryRetrieveApi、UserAuthTypeRetrieveApi)及对应的序列化器、测试代码和biz/monitor模块,共减少557行代码。

发现的问题

  1. URL处理策略不一致:大部分URL直接删除了import,但部分URL用FIXME注释的方式保留,这种混合策略可能导致未来维护时的困惑。

  2. UserAuthTypeRetrieveApi 未在描述中提及:PR描述只提到3个API,但实际还删除了 UserAuthTypeRetrieveApi,应更新描述。

  3. 前端服务层存在僵尸代码src/dashboard-front/src/services/source/online-debugging.ts 中的 getUserAuthType 函数已定义但未在代码中实际调用,建议一并清理前端代码。

  4. AGENTS.md 修改与PR内容关联度低:AGENTS.md 的更新(Git工作流说明)与本次删除死代码的关联性较弱,可作为独立的文档提交。

优点

  1. 清理彻底:同时删除了 views、serializers、tests、biz层和URL配置,避免了孤立代码残留。

  2. FIXME 注释提供时间追踪:注释中标注了注释日期(2026-03-23),便于追溯和后续清理。

  3. 测试覆盖完整:删除了所有相关的测试用例,确保测试与实现同步。

  4. Commit message 规范:详细说明了变更原因、具体内容和解决的问题。

总结

这是一次良性的代码重构,减少代码维护负担。已删除的API经检查确实未被前端调用,MonitorHandler 也无其他引用,删除是安全的。建议合并,但建议后续统一处理前端僵尸代码和明确FIXME注释的清理计划。


由 Claude 自动 review | 基于默认 Review 流程 [from openclaw-internal]

@Han-Ya-Jun

Copy link
Copy Markdown
Member

Code Review 报告

1. 基本信息

项目 内容
审查时间 2026-03-23 20:46
需求关联 N/A - 代码重构(移除死代码)
审查范围 PR #2569 - refactor(dashboard): remove unused web APIs and dead code
代码变动 571行 (+14/-557), 18文件
审查结论 ✅ 建议合并(需补充 CHANGELOG) (得分: 8.5/10)

2. 问题统计

级别 数量 说明
🛑 Critical (P0) 0 必须修复
⚠️ Major (P1) 3 强烈建议修复
💡 Minor (P2) 3 可选优化

总计: 6 个问题

P1 问题清单:

  1. 缺少 CHANGELOG 说明
  2. FIXME 注释缺少明确时间线
  3. 缺少"API 未使用"的验证数据

3. 需求与设计符合性

本次审查未关联具体需求文档,属于代码清理重构,跳过需求符合性分析。

重构目标:移除 4 个未被前端调用的 API 端点及其依赖代码。


4. 代码质量与复杂度分析

4.1 变更概览

模块 删除内容 影响
mcp_server MCPServerUpdateLabelsApi + Serializer 46 行
monitor AlarmRecordSummaryListApi + MonitorHandler 245 行
release ReleaseHistoryRetrieveApi 38 行
setting UserAuthTypeRetrieveApi 23 行
tests 相关测试文件 219 行

4.2 可读性评分

  • 命名规范: 10/10 (无新增代码)
  • 注释完整性: 8/10 (FIXME 注释略显不确定)
  • 代码结构: 10/10 (分层删除清晰)

详细评价: 删除操作清晰有序,依赖链清理完整。FIXME 注释标记了日期但未明确观察期时长。


5. 深度代码审查

5.1 严重问题 (Critical) 🛑

未发现严重问题。


5.2 重要问题 (Major) ⚠️

P1-1. 缺少 CHANGELOG 说明

  • 📍 位置: 项目根目录
  • 📝 描述: 删除了 4 个 API 端点(Breaking Changes),但未在 CHANGELOG.md 中说明影响范围
  • 📏 规范: [编程规范 - documentation]
  • 💡 建议: 在 CHANGELOG.md 中添加 Breaking Changes 说明

修复示例:

## [Unreleased]

### Removed (Breaking Changes)
- **API Endpoints** (dead code, never called by frontend):
  - `PATCH /api/v1/gateways/{id}/mcp-servers/{id}/labels/`
  - `GET /backend/gateways/monitors/alarm/records/summary/`
  - `GET /api/v1/gateways/{id}/releases/histories/latest/`
  - `GET /backend/settings/user_auth_type/`
- **Modules**: `apigateway.biz.monitor` (MonitorHandler)

**Impact**: None | **Migration**: No action needed

P1-2. FIXME 注释缺少明确时间线

  • 📍 位置:
    • src/dashboard/apigateway/apigateway/apis/web/mcp_server/urls.py:59
    • src/dashboard/apigateway/apigateway/apis/web/release/urls.py:77
    • src/dashboard/apigateway/apigateway/apis/web/setting/urls.py:24
    • src/dashboard/apigateway/apigateway/urls.py:82
  • 📝 描述: FIXME 注释语气不确定("not used?"),且未说明计划删除时间
  • 📏 规范: [编程规范 - code-comments]
  • 💡 建议: 改进注释,明确观察期和删除计划

当前:

# FIXME: not used? commented out in 2026-03-23, remove in the future

建议改为:

# FIXME: Dead code (never called by frontend) - commented out on 2026-03-23
# Plan to permanently delete after 2026-04-23 (1 month observation period)

P1-3. 缺少"API 未使用"的验证数据

  • 📍 位置: PR 描述
  • 📝 描述: 声称这些 API 未被前端调用,但未提供证据(日志/监控数据)
  • 📏 规范: [编程规范 - change-documentation]
  • 💡 建议: 补充验证结果到 PR 描述

建议补充:

# 访问日志验证(近 90 天)
grep -E "mcp-servers/.*/labels|alarm/records/summary" /var/log/nginx/access.log
# 结果:0 条记录

# 前端代码搜索
git grep -E "mcp-servers/.*/labels|alarm/records/summary" frontend/
# 结果:无引用

5.3 优化建议 (Minor) 💡

P2-1. 创建后续清理 issue

  • 位置: GitHub Issues
  • 建议: 在 GitHub 中创建 issue,设置 2026-04-23 最终删除注释掉的 URL 路由

P2-2. 通知前端团队

  • 位置: N/A
  • 建议: 通知前端团队这些 API 已移除,避免未来误用

P2-3. Staging 环境观察

  • 位置: N/A
  • 建议: 部署后在 staging 环境观察 1-2 周,监控 404 错误

6. 专项评估

6.1 安全风险 (Security) 🛡️

未发现安全风险。

已验证:

  • ✅ 无残留引用:MonitorHandler 全局搜索 0 结果
  • ✅ 数据模型完整:AlarmRecord/AlarmStrategy 保留(仍被 71 处引用)
  • ✅ 无敏感信息泄露

6.2 性能考量 (Performance) 🚀

未发现性能问题。

正向影响:

  • ✅ 减少代码维护负担(-557 行)
  • ✅ 降低认知复杂度

6.3 资源管理 (Resource Management)

资源清理完整。

已验证:

  • ✅ 依赖链完整删除:View → Serializer → BizLayer → Tests
  • ✅ 共享资源正确保留:ReleaseHistoryOutputSLZ 仍被其他 API 使用
  • ✅ 测试同步删除:7 个测试方法 + 2 个测试模块

6.4 并发安全 (Concurrency)

N/A - 本次变更为删除操作,不涉及并发代码。


7. 审查总结与评分

7.1 维度评分

维度 得分 权重 说明
需求符合性 N/A 0% 代码重构无外部需求
编程规范 7/10 30% 缺少 CHANGELOG,FIXME 注释待改进
可读性 10/10 20% 删除操作清晰
代码完整性 10/10 30% 依赖链清理完整
安全性 10/10 20% 无残留引用,数据模型完整

加权综合得分: 8.5 / 10

7.2 最终结论

建议合并(Approve with conditions)

理由:

  1. ✅ 代码完整性优秀:依赖链清理彻底,无残留引用
  2. ✅ 安全性优秀:数据模型正确保留,无风险操作
  3. ✅ 分阶段策略:URL 先注释而非直接删除,降低回滚成本
  4. ⚠️ 需补充:CHANGELOG + 改进 FIXME 注释 + 提供验证数据

合并条件(P1 问题):

  • P1-1: 补充 CHANGELOG.md
  • P1-2: 改进 FIXME 注释(明确观察期)
  • P1-3: 提供 API 未使用的验证数据

合并后建议 (P2 问题):

  • P2-1: 创建后续清理 issue (2026-04-23)
  • P2-2: 通知前端团队
  • P2-3: Staging 环境观察 1-2 周

附录:审查元数据

  • 工具版本: CodeReview Skill v1.0
  • 规则集: Python Coding Standards + Security Guidelines
  • 语言统计:
    • Python: 18 files, 571 lines changed
  • 生成时间: 2026-03-23 20:46:00

A. 验证命令清单

# 1. 残留引用检查(已验证 ✅)
grep -r "from apigateway.biz.monitor import" --include="*.py" | grep -v test_
grep -r "MonitorHandler" --include="*.py" | grep -v test_

# 2. 项目启动检查
python manage.py check

# 3. 单元测试
pytest apigateway/tests/apis/web/monitor/ -v
pytest apigateway/tests/apis/web/mcp_server/ -v
pytest apigateway/tests/apis/web/release/ -v

B. 参考资料

  • Python Best Practices: Error Handling & Resource Management
  • Django REST Framework: API Deprecation Strategy

Reviewed by OpenClaw Code Review Skill
[from openclaw-internal]

@Han-Ya-Jun Han-Ya-Jun left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@wklken
wklken merged commit 89cb12e into TencentBlueKing:master Mar 24, 2026
4 checks passed
@wklken
wklken deleted the refactor_unused_apis branch May 13, 2026 07:04
Han-Ya-Jun pushed a commit to Han-Ya-Jun/blueking-apigateway that referenced this pull request May 18, 2026
…eKing#2569)

* refactor(dashboard): remove unused web APIs and dead code

Why this change was needed:
These APIs were never called by the frontend and were cluttering the codebase.
Removing dead code reduces cognitive overhead and makes the codebase easier
to maintain and reason about.

What changed:
- Removed MCPServerUpdateLabelsApi and its serializer (mcp_server module)
- Removed AlarmRecordSummaryListApi, its serializers, and MonitorHandler biz layer (monitor module)
- Removed ReleaseHistoryRetrieveApi and its route (release module)
- Commented out unused URL routes with FIXME markers for safe future removal
- Deleted biz/monitor module (MonitorHandler class no longer needed)
- Removed corresponding test files for deleted code

Problem solved:
Dead API endpoints and their supporting layers are no longer carried in the
codebase. Future developers won't waste time understanding code that is never
invoked. The FIXME comments allow a staged removal if any edge case surfaces.

* docs(agents.md): add the wrong PR guide

* feat(agents.md): update
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.

2 participants