CLI 工作流

用 CLI 调试 HTTP API

先用明确的方法、Header、Body、超时和保存的响应复现单个请求,再改客户端或服务端。

HTTP 与 Webhook本地写入

开始前准备好工具、认证与证据

先安装推荐工具,确认最小权限,再区分兼容性和真实执行记录。

curlverified
通过显式方法、请求头、认证、重试和失败处理调用 HTTP API。

推荐安装

$ shell
brew install curl
认证
none, basic, bearer token, client certificate, netrc
已测试 Agent
暂无 Agent 级执行记录
证据状态
verified · 文档检查 2026-07-10
CLI 独立执行
8.7.1 · 4 项检查
httpdocs-verified
通过 JSON 感知的输入输出,在本地或 CI 工作流中发送易读的 HTTP 请求。

推荐安装

$ shell
pipx install httpie
认证
none, basic, bearer token, auth plugins, sessions
已测试 Agent
暂无 Agent 级执行记录
证据状态
docs-verified · 文档检查 2026-07-10
CLI 独立执行
未记录独立执行版本
jqverified
在本地以确定性输出解析、筛选、校验和转换 JSON。

推荐安装

$ shell
brew install jq
认证
基础操作无需认证
已测试 Agent
暂无 Agent 级执行记录
证据状态
verified · 文档检查 2026-07-10
CLI 独立执行
jq-1.7.1-apple · 4 项检查

复制或下载本工作流 Skill

Skill 包含输入输出合同、推荐工具、审批点、回滚和证据边界;保存前仍应按当前环境审查。

debug-http-api-SKILL.md
---
name: debug-http-api-workflow
description: "先用明确的方法、Header、Body、超时和保存的响应复现单个请求,再改客户端或服务端。"
---

# 调试 HTTP API

## 适用目标

判断问题来自网络、认证、请求形状、服务端行为还是响应解析。

## 证据边界

- 工具状态分别标注 `docs-verified` 与真实独立执行;二者不能互换。
- 当前注册表没有记录某次工具执行具体由哪个 Agent 完成,因此不能把“兼容 Agent”称为“已测试 Agent”。
- 执行前重新核对目标账户、环境、版本与官方文档。
- 不自动执行 R2、R3 或任何标记为需要确认的步骤;必须在执行前获得明确批准。

## 推荐工具、安装与认证

- **curl**(证据:`verified`,文档检查:`2026-07-10`,已记录独立测试版本 8.7.1)
  - 安装:`brew install curl`
  - 认证:none, basic, bearer token, client certificate, netrc
  - 最小权限:通过环境变量提供范围受限的 Token,不要在输出中打印请求密钥。
- **HTTPie**(证据:`docs-verified`,文档检查:`2026-07-10`,未记录独立执行版本)
  - 安装:`pipx install httpie`
  - 认证:none, basic, bearer token, auth plugins, sessions
  - 最小权限:通过环境变量提供请求头,并把 session 存储在仓库之外。
- **jq**(证据:`verified`,文档检查:`2026-07-10`,已记录独立测试版本 jq-1.7.1-apple)
  - 安装:`brew install jq`
  - 认证:基础操作无需认证
  - 最小权限:无需服务凭据;仍应把文件系统和网络访问限制在任务范围内。

## 输入合同

- Endpoint 与方法
- 脱敏 Header
- 请求体
- 预期状态与响应形状

## 输出合同

- 可复现命令
- 状态与 Header
- 保存的响应体
- 故障假设

## 安全工作流

1. **构造安全复现** — 认证值从环境读取,并设置明确超时。
   - 输入: Endpoint、方法、Header 和 Body
   - 输出: 可审查请求命令
   - 风险: `read-only`
   - 命令: `curl --fail-with-body --max-time 20 -D headers.txt -o response.json "$API_URL"`
2. **捕获响应** — 分别保存 Header 和 Body,再解析 JSON,不输出凭证。
   - 输入: HTTP 响应
   - 输出: 状态、Header、解析结果与退出码
   - 风险: `local-write`
   - 命令: `jq . response.json`
3. **对比并隔离** — 每次只修改一个输入,区分客户端、服务端与网络故障。
   - 输入: 基线请求和预期合同
   - 输出: 最小失败案例和可能故障层
   - 风险: `read-only`

## 必须先确认

- 调用创建、修改、删除、扣费、发送或部署的接口
- 使用生产凭证或客户数据
- 重试非幂等请求

## 回滚

- 基线优先使用只读 endpoint
- 删除含敏感数据的本地响应文件
- 批准写入前先记录资源 ID 和文档定义的反向操作

## 官方来源

- [curl manual](https://curl.se/docs/manpage.html) — 用于核对当前命令、认证、输出和操作边界。
- [HTTPie CLI documentation](https://httpie.io/docs/cli) — 用于核对当前命令、认证、输出和操作边界。
- [jq manual](https://jqlang.github.io/jq/manual/) — 用于核对当前命令、认证、输出和操作边界。

目标、输入与输出

在 Agent 选择命令前,先明确要交付的结果和证据。

目标

判断问题来自网络、认证、请求形状、服务端行为还是响应解析。

所需输入

  • Endpoint 与方法
  • 脱敏 Header
  • 请求体
  • 预期状态与响应形状

预期输出

  • 可复现命令
  • 状态与 Header
  • 保存的响应体
  • 故障假设

用 CLI 调试 HTTP API:安全执行步骤

每一步都要在已声明的边界内执行,验证输出后再继续。

步骤 1只读

构造安全复现

认证值从环境读取,并设置明确超时。
输入
Endpoint、方法、Header 和 Body
输出
可审查请求命令
$ 构造安全复现
curl --fail-with-body --max-time 20 -D headers.txt -o response.json "$API_URL"
步骤 2本地写入

捕获响应

分别保存 Header 和 Body,再解析 JSON,不输出凭证。
输入
HTTP 响应
输出
状态、Header、解析结果与退出码
$ 捕获响应
jq . response.json
步骤 3只读

对比并隔离

每次只修改一个输入,区分客户端、服务端与网络故障。
输入
基线请求和预期合同
输出
最小失败案例和可能故障层

审批点与回滚

在列出的决策点停下,并让恢复方法始终紧跟操作。

这些操作需要先确认

  • 调用创建、修改、删除、扣费、发送或部署的接口
  • 使用生产凭证或客户数据
  • 重试非幂等请求

恢复计划

  • 基线优先使用只读 endpoint
  • 删除含敏感数据的本地响应文件
  • 批准写入前先记录资源 ID 和文档定义的反向操作

选 CLI、MCP 还是 API?

根据执行位置、身份、输出合同与权限边界选接口。

CLI

适合制作透明复现,并放入 CI 或事故报告。

MCP

API 应以窄范围 typed operations 暴露,而不是任意请求时适用。

API

API 本身是目标;先理解原始 HTTP 合同,再决定是否使用 SDK。

建议方案

精确行为优先 curl;交互诊断更看重可读性时用 HTTPie。

官方证据与参考

执行前使用这些官方或上游来源确认当前命令行为。

curl manual

用于核对本页涉及的当前命令、认证、输出格式与操作边界。

HTTPie CLI documentation

用于核对本页涉及的当前命令、认证、输出格式与操作边界。

jq manual

用于核对本页涉及的当前命令、认证、输出格式与操作边界。

执行前的常见问题

Agent 应该开启 verbose 吗?

只在必要时开启,分享前必须脱敏 Authorization、Cookie 和敏感查询值。

什么时候可以安全重试?

读取和文档明确的幂等操作可以;没有幂等保证的写请求不能自动重试。

相关工具与指南

浏览同类指南,选择与你当前任务最接近的下一页。

继续查看与当前任务相关的工具证据、工作流或决策指南。

继续查看与当前任务相关的工具证据、工作流或决策指南。

继续查看与当前任务相关的工具证据、工作流或决策指南。

检查安装、认证、结构化输出、命令风险与官方证据。