问题修复
需要快速验证所有 API 端点是否可用并定位…
启动开发服务器,从代码库发现所有 API 路由,逐个请求并归类状态码,报告和修复异常端点。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
需要快速验证所有 API 端点是否可用并通用
解决思路
- 在代码库中搜索 API 路由定义。
- Next.js (App Router):查找 `app/api/**/route.ts`。
- Next.js (Pages Router):查找 `pages/api/**/*.ts`。
- Express:查找 `app.get(`、`app.post(`、`router.get(` 等。
- Django:在 `urls.py` 中查找 `urlpatterns`。
- FastAPI:查找 `@app.get(`、`@app.post(` 等装饰器。
- Rails:查找 `routes.rb`。
- 构建端点列表,并记录每个端点对应的 HTTP 方法。
- 检查终端文件,确认是否有正在运行的 dev server。
- 如果没有找到正在运行的 dev server,则启动一个。
- 对每个路由执行:`curl -s -o /dev/null -w "%{http_code}" -X <METHOD> http://localhost:<PORT><PATH>`。
- 对于需要请求体的端点(POST/PUT/PATCH),发送最小有效 JSON:`curl -s -o /dev/null -w "%{http_code}" -X POST http://localhost:<PORT><PATH> -H "Content-Type: application/json" -d '{}'`。
- 将结果分类:200-299 表示 OK。
- 301/302 表示 Redirect(OK)。
- 400 表示 Bad request(对空 POST body 是预期结果)。
- 401/403 表示 Auth required(对受保护路由是预期结果)。
- 404 表示 Route not found(BUG:代码中存在路由但未被服务)。
- 500 表示 Server error(BUG)。
- 000/timeout 表示 Server not responding(BUG)。
- 按以下格式输出报告:`API Smoke Test Results:`、`Tested: 15 endpoints`、`Passed: 12`、`Auth required: 2 (GET /api/user, POST /api/settings)`、`Errors:`,并在 Errors 下列出类似 `500 — POST /api/webhooks/stripe (TypeError: Cannot read property 'id' of undefined)` 和 `404 — GET /api/v2/health (route defined but not mounted)` 的具体错误。
- 对于 500 错误,读取终端输出中的 stack trace,并修复根因。
- 对于 404,检查路由文件是否位于正确位置并正确导出。
适用边界 · 注意事项
- 没有可运行或可访问的本地开发服务器时,无法执行该冒烟测试。
- 当端点需要真实鉴权、复杂请求体或外部依赖才能返回有意义结果时,空请求体冒烟测试不足以验证业务逻辑。
- 不要用它替代单元测试或集成测试;它只能快速发现路由未挂载、500 等健康问题。