用途:对自有 REST API 做一次性、只读的健康检查,无需注册,仅使用 curl。运行前需准备 curl、一个 base URL、端点列表或 OpenAPI/Swagger 规范文件或 URL;只能对自有或获授权的 API 运行。
触发方式示例:“Smoke check my API at https://api.mysite.com”“Is my API healthy?”“Check these endpoints: /api/users, /api/health”。
工作流:从用户列表或 OpenAPI 规范中解析带 get 操作的路径来收集端点;始终只发送 GET、HEAD、OPTIONS,不发送 POST/PUT/PATCH/DELETE,不创建、修改或删除数据。对每个端点先捕获状态与耗时到文件再读取,例如:
curl -s -o /tmp/api-body.json -D /tmp/api-headers.txt
-w '%{http_code} %{time_total} %{time_starttransfer}\n'
"$BASE$ENDPOINT" > /tmp/api-timing.txt
主要检查项:状态码方面,已文档化的 GET 应返回 2xx,需鉴权的端点应返回 401/403,缺少鉴权时返回 500 属缺陷,未知路径应返回 404 而非带错误正文的 200(软 200);延迟方面 time_total ≤300ms 良好、≤1s 可接受、>3s 失败;Content-Type 方面 JSON 端点应返回 application/json,JSON API 出现 HTML 错误页属于问题;错误正文整洁度方面,请求一个必然 404 的路径和一个未鉴权的受保护路径,检查正文是否泄露堆栈、框架横幅、内部主机名、SQL 片段或文件路径,错误应返回结构稳定的 JSON;CORS 方面通过带 Origin 头的 OPTIONS 检查,Access-Control-Allow-Origin: * 与 Access-Control-Allow-Credentials: true 同时存在无效且是配置错误信号;响应头方面,HTTPS API 应有 HSTS,且不应泄露 X-Powered-By/Server 版本。
报告结构包含端点状态、预期、延迟、Content-Type、评级表格,以及错误整洁度、CORS、发现项(含严重度、证据、修复方向)和未覆盖范围。未覆盖范围包括写路径(POST/PUT/DELETE)、鉴权流程、分页正确性、模式校验,这些需要经过鉴权的有状态测试。