Install
openclaw skills install @thcjp/api-toolkit-freeopenclaw skills install @thcjp/api-toolkit-free把"接口联调"从一上午压缩到一杯咖啡的时间。请求模板+认证范式+错误诊断三件套。
API工具箱免费版解决独立开发者最常踩的三个坑:请求体忘加 Content-Type、认证头写错格式、收到错误码不知道是客户端还是服务端问题。本工具把这些高频操作固化为可复制模板与速查表,配以决策树式诊断流程,让Agent能直接给出可粘贴的命令与可执行的修复建议。
直接对Agent说:
"帮我发一个 POST 请求到 https://api.example.com/v1/orders,body 是
{"sku":"A1","qty":2},用 Bearer Token 认证。"
Agent会按本工具的模板规则输出:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | API工具箱(免费版)处理的输入数据或指令 |
| options | object | 否 | 附加配置选项,如模式选择、格式偏好等 |
| callback_url | string | 否 | 异步处理完成后的回调通知URL |
curl -X POST 'https://api.example.com/v1/orders' \
-H 'Authorization: Bearer 配置值' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'X-Request-Id: '$(uuidgen 2>/dev/null || echo "req-$(date +%s)") \
-d '{"sku":"A1","qty":2}' \
-w '\nHTTP_STATUS:%{http_code} TIME:%{time_total}s\n'
把报错粘给Agent:
HTTP 402
{"code":"balance_insufficient","message":"账户余额不足"}
Agent会按"错误体诊断决策树"判断:4xx + 业务错误码 → 客户端语义层问题 → 修复建议:检查账户余额或切换计费账户,并附上对应文档链接关键词。
| 场景 | 必备请求头 | 模板要点 |
|---|---|---|
| GET 查询列表 | Accept、Authorization | URL带分页参数 page/page_size |
| POST 创建资源 | Content-Type: application/json、Authorization、Idempotency-Key | 关键操作必加幂等键 |
| PUT 全量更新 | Content-Type: application/json、If-Match | 配合ETag做乐观锁 |
| PATCH 部分更新 | Content-Type: application/json-patch+json | 部分服务需特殊Content-Type |
| DELETE 删除 | Authorization、X-Confirm: true | 危险操作建议加二次确认头 |
| 文件上传 | Content-Type: multipart/form-data | 边界boundary由库自动处理 |
Agent执行规则:生成请求时自动补全 Content-Type、Accept、Authorization 三大头;POST/PUT/PATCH默认附加 Idempotency-Key(用UUID或时间戳);输出末尾追加 -w '\nHTTP_STATUS:%{http_code} TIME:%{time_total}s\n' 便于诊断。
输入: 用户提供功能1:请求模板生成器所需的指令和必要参数。 处理: 解析功能1:请求模板生成器的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回功能1:请求模板生成器的响应数据,包含状态码、结果和日志。
四种主流认证的标准化调用范式,每次调用都按此格式输出:
# === API Key (Header) ===
curl -H 'X-API-Key: 配置值' https://api.example.com/v1/data
# ...
# === Bearer Token (JWT/OAuth2) ===
curl -H 'Authorization: Bearer 配置值' https://api.example.com/v1/data
# ...
# === Basic Auth ===
curl -u '<KEY_ID>:<SECRET>' https://api.example.com/v1/data
# ...
# === OAuth2 Client Credentials ===
TOKEN=$(curl -s -X POST https://auth.example.com/oauth/token \
-u '<CLIENT_ID>:<CLIENT_SECRET>' \
-d 'grant_type=client_credentials' | jq -r .access_token)
curl -H "Authorization: Bearer $TOKEN" https://api.example.com/v1/data
安全红线:API Key永远放在Header或环境变量中,禁止放在URL Query;Token禁止输出到日志或echo;Agent在示例中一律使用 配置值 占位,绝不写出真实凭证。
输入: 用户提供功能2:认证范式速查所需的指令和必要参数。 处理: 解析功能2:认证范式速查的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回功能2:认证范式速查的响应数据,包含状态码、结果和日志。
input_params参数,支持创建/查询/导出操作收到非2xx响应时,按以下决策树定位问题:
HTTP状态码
├── 4xx 客户端错误
│ ├── 400 Bad Request → 检查请求体JSON格式、必填字段、枚举值
│ ├── 401 Unauthorized → Token缺失/过期/格式错;检查Authorization头
│ ├── 403 Forbidden → Token有效但权限不足;检查scope/角色
│ ├── 404 Not Found → 路径错误或资源ID错误;核对端点版本号
│ ├── 409 Conflict → 资源已存在或状态冲突;用幂等键重试
│ ├── 422 Unprocessable → 业务校验失败;读response.body.code
│ └── 429 Too Many Requests → 触发限流;读 Retry-After 头,退避重试
├── 5xx 服务端错误
│ ├── 500 Internal → 上游异常;重试2-3次后告警
│ ├── 502/504 Gateway → 网关/超时;指数退避重试
│ └── 503 Unavailable → 维护中;读 Retry-After,降级
└── 业务错误码 (HTTP 200但body.code != 0)
└── 必须读response body的code/message字段,不能只看HTTP状态
关键提醒:约30%的API在业务失败时仍返回HTTP 200,把错误码塞在response body里。诊断时必须同时检查HTTP状态码与响应体的 code/error 字段。
输入: 用户提供功能3:错误体诊断决策树所需的指令和必要参数。 处理: 解析功能3:错误体诊断决策树的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回功能3:错误体诊断决策树的响应数据,包含状态码、结果和日志。
覆盖15类共80+主流服务,按类目组织。每个服务记录:基础认证方式、典型端点前缀、速率限制提示。
| 类目 | 代表服务 | 认证 | 速查要点 |
|---|---|---|---|
| AI/ML | OpenAI、Anthropic、Cohere | Bearer | 多数按token计费,注意stream响应 |
| 支付 | Stripe、PayPal、Square | Bearer | 强制使用Idempotency-Key |
| 通信 | Twilio、SendGrid、Slack | API Key/Basic | Twilio用Basic,Slack用Bearer |
| 实时 | Pusher、Ably、OneSignal | API Key | 长连接,注意心跳保活 |
| CRM | HubSpot、Salesforce、Pipedrive | Bearer/OAuth2 | Salesforce用SOQL,注意版本号 |
| 营销 | Braze、Iterable、Klaviyo | API Key | 批量接口有上限,分批提交 |
| 开发者工具 | GitHub、GitLab、Vercel | Bearer | GitHub用 Authorization: token 或 Bearer |
| 数据库 | Supabase、Firebase、PlanetScale | API Key/JWT | Supabase用anon key+service_role |
| 认证 | Clerk、Auth0、WorkOS | Bearer | 注意机器间通信用M2M token |
| 媒体 | Cloudinary、Mux、Spotify | API Key/Bearer | 上传走签名URL,不走API Key |
| 社交 | Twitter/X、LinkedIn、Reddit | OAuth2/Bearer | 注意短时窗口限流 |
| 生产力 | Notion、Linear、Jira | Bearer | Notion需指定 Notion-Version 头 |
| 商业 | Shopify、DocuSign | OAuth2/HMAC | Shopify用X-Shopify-HMAC-SHA256签名 |
| 地理 | Mapbox、Google Maps | API Key | Key放URL Query是惯例(注意泄露风险) |
| 分析 | Mixpanel、Amplitude、Segment | API Key/Basic | Segment用Basic Auth |
输入: 用户提供功能4:服务端点速查索引所需的指令和必要参数。 处理: 解析功能4:服务端点速查索引的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回功能4:服务端点速查索引的响应数据,包含状态码、结果和日志。 能力覆盖范围:本skill的核心能力覆盖以下场景关键词:轻量级、API、测试调试工具箱、覆盖请求构造、错误诊断与文档速、秒上手、工具箱免费版是一、套面向独立开发者、与一人公司的轻量、测试与调试工具集、请求构造、认证管理、错误诊断、文档速查、四件事、提供可复制即用的、curl、HTTPie、常见认证流程速查、HTTP、状态码与错误体诊、断决策树、以及一份覆盖、主流第三方服务的、端点索引、Use、when、需要代码生成、编程辅助、调试测试、开发部署时使用、不适用于无明确技、术栈的模糊需求等。
痛点:第一次接入Stripe,文档翻半天,curl请求不是少头就是多参数。
使用方式:对Agent说"我要调Stripe创建Customer",Agent按本工具的模板规则输出完整的curl命令,自动补全 Authorization: Bearer sk_xxx、Content-Type: application/json、Idempotency-Key,并附上Stripe的速率限制提示(100读/秒、100写/秒)与典型4xx错误码对照。
效果:首次联调从平均40分钟降至5分钟。
痛点:写定时同步脚本前要先确认接口能用,但每次都忘加Content-Type或拿错Token。
使用方式:对Agent说"验证一下我的HubSpot联系人接口能用",Agent生成只读GET请求模板,建议先用 limit=1 探测,附上HubSpot的 X-HubSpot-RateLimit-Remaining 头检查方法,并提示429时的退避策略。
效果:探测脚本即拷即用,避免脚本上线后才发现接口调不通。
痛点:前端联调时收到500,不知道是后端bug还是自己参数传错。
使用方式:把HTTP响应(含状态码、headers、body)粘给Agent,Agent按"错误体诊断决策树"判断:500 + 空 body → 大概率上游异常,建议重试2次;500 + {"code":"db_timeout"} → 业务层超时,建议检查慢查询;401 + {"error":"invalid_token"} → Token过期,走刷新流程。
效果:错误归因从靠猜变为按决策树定位,平均节省15分钟。
不限制服务数量。本工具免费版提供请求模板、认证范式、错误诊断与服务索引,可对任意第三方API生成curl命令。免费版不限制使用次数,仅限制高级功能(批量测试、Mock服务、性能压测、契约校验),详见末尾"免费版限制"。
免费版聚焦RESTful API的测试与调试。GraphQL的查询构造、变量管理、字段校验属于专业版功能。若你只需发送一个GraphQL POST请求,可用本工具的POST模板,body填GraphQL查询字符串即可。
不会。Agent在所有示例中使用 配置值、配置值 等占位符,绝不写入真实凭证。建议把Token放在环境变量中,命令中用 $TOKEN 引用。本工具的安全红线明确禁止把Token输出到日志或echo。
决策树覆盖HTTP标准状态码的通用含义与约80%主流API的常见错误模式。部分API有自定义业务错误码(如Stripe的 card_declined),需要查阅该服务文档。免费版提供决策树框架与常见错误码对照,专业版提供按服务细分的完整错误码字典。
可以。本工具默认输出curl模板(兼容性最好),但Agent可根据你的偏好切换为HTTPie(http POST url Authorization:"Bearer xxx" field=value)或Postman的请求描述。切换时请明确告知工具偏好。
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent平台内置LLM提供(免费版路由GPT-4o-mini) |
| curl | 工具 | 推荐 | 系统自带或从curl.se安装 |
| jq | 工具 | 可选 | 用于解析JSON响应,从jqlang.github.io安装 |
本技能基于原始开源作品改进,保留原始版权声明:
本改进作品在原始作品基础上进行了深度差异化改造,包括但不限于:
原始MIT license允许使用、复制、修改和分发,需保留版权声明。本改进作品在保留原始版权声明的基础上添加自有署名,完全符合MIT license要求。
本免费体验版限制以下高级功能:
api-test-suite 命令mock-server 子命令load-test 子命令contract-check 子命令解锁全部功能请使用专业版:api-toolkit-pro
### 30秒上手:生成一个带认证的请求(补充)
# ...
直接对Agent说:
# ...
> "帮我发一个 POST 请求到 https://api.example.com/v1/orders,body 是 `{"sku":"A1","qty":2}`,用 Bearer Token 认证。"
# ...
Agent会按本工具的模板规则输出:
# ...
```bash
curl -X POST 'https://api.example.com/v1/orders' \
-H 'Authorization: Bearer 配置值' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'X-Request-Id: '$(uuidgen 2>/dev/null || echo "req-$(date +%s)") \
-d '{"sku":"A1","qty":2}' \
-w '\nHTTP_STATUS:%{http_code} TIME:%{time_total}s\n'
## 错误处理
| 错误场景 | 原因 | 处理方式 |
|:------|------:|:------|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |