用途:bk-cli api 直接对任意 BlueKing API Gateway 发起 HTTP 请求,适合已知 gateway_name、HTTP 方法和路径时直接调用,或现有系统子命令未覆盖目标接口时调试。使用前须先用 Read 工具读取 ../bk-cli-shared/SKILL.md,其中定义认证、context、stage、timeout、header、body、tenant、dry-run 和 verbose 的共享规则。
主要能力:命令形态为 bk-cli api <gateway_name> <method> <api_path> [flags]。gateway_name 须匹配 ^[a-z][a-z0-9-]{2,29}$;method 支持 GET、POST、PUT、PATCH、DELETE。Flags 包括 --query(JSON 查询参数)、--path(替换 {placeholder})、--body(JSON 请求体,自动设置 Content-Type: application/json)、--header(可重复,Key:Value)、--stage(prod 默认或 testing)、--timeout(如 180s)、--dry-run、--context、--verbose、--insecure。
使用方式:推荐先确认 context、认证和 stage;能直接写值就写进 api_path,仅在模板更清晰时用 --path;首次或排障优先加 --dry-run,需要细节再加 --verbose。URL 按四步构造:渲染 bk_api_url_tmpl 得基础 URL、追加 /{stage}、用 --path 替换占位符、追加 api_path。输出为 JSON envelope:成功 {"ok": true, "status": 200, ...},API 错误 {"ok": false, "status": 400, ...},CLI 错误走 stderr。可用 jq 解析 .data、.ok、.status。
限制:占位符未解析、--path 缺 key/多余 key/非法 JSON 会本地报错;--insecure 仅限临时调试;认证、tenant、header 覆盖优先级等共享规则见 bk-cli-shared。常见错误含 config_error、auth_required、invalid_gateway_name、path_error、request_error、network_error。