Yaak CLI 技能 是做什麼的?
yaak CLI(@yaakapp/cli)讓您可以從終端機控制 Yaak 桌面 API 用戶端。它會讀寫與桌面應用程式相同的本地 SQLite 資料庫 — 變更會立即雙向同步。
先決條件
- 已安裝
yaakCLI:npm install -g @yaakapp/cli - Yaak 桌面應用程式(建議但非必要,可用於視覺驗證)
全域標誌
| 標誌 | 用途 |
|---|---|
--data-dir <DIR> | 自訂資料目錄 |
-e, --environment <ID> | 用於變數置換的環境 ID |
--cookie-jar <ID> | 用於執行請求的 Cookie Jar ID |
-v, --verbose | 詳細輸出(事件、串流主體) |
--log [LEVEL] | CLI 紀錄層級(error|warn|info|debug|trace) |
指令樹
yaak
├── workspace list | show <id> | create | update <id> | delete <id> [--yes]
├── request list [<ws-id>] | show <id> | create [<ws-id>] | update <id> | delete <id> [--yes] | send <id> | schema <type>
├── folder list [<ws-id>] | show <id> | create -n <name> [<ws-id>] | update <id> | delete <id> [--yes]
├── environment list [<ws-id>] | show <id> | create | update <id> | delete <id> [--yes]
├── cookie-jar list [<ws-id>]
├── send <ID> # 請求、資料夾或工作區
├── auth login | logout | whoami
└── plugin build | dev | generate | install | publish
多工作區規則: 當只有一個工作區存在時,[<ws-id>] 為可選。若有多個工作區,則必須將工作區 ID 作為第一個位置引數傳入。
工作區
yaak workspace list # 列出所有工作區
yaak workspace show <ws-id> # 顯示完整 JSON
yaak workspace create -n "My API" # 依名稱建立
yaak workspace create --json '{"name":"My API","headers":[...]}' # 使用設定建立
yaak workspace update <ws-id> --json '{"name":"Renamed"}'
yaak workspace delete <ws-id> --yes # 非互動刪除
資料夾
yaak folder list [<ws-id>] # 列出工作區內的資料夾
yaak folder show <folder-id> # 顯示完整 JSON
yaak folder create -n "Auth" [<ws-id>] # 在工作區中建立資料夾
yaak folder create --json '{"name":"Auth","workspaceId":"wk_..."}' [<ws-id>]
yaak folder update <folder-id> --json '{"name":"Renamed"}'
yaak folder delete <folder-id> --yes
請求
列出與檢視
yaak request list [<ws-id>] # 列出所有請求
yaak request show <req-id> # 顯示完整 JSON(方法、URL、標頭、主體等)
建立
快速標誌:
yaak request create [<ws-id>] -n "Get Users" -m GET -u "https://api.example.com/users"
完整 JSON:
yaak request create [<ws-id>] --json '{
"name": "Create User",
"method": "POST",
"url": "https://api.example.com/users",
"folderId": "fl_...",
"bodyType": "application/json",
"body": {
"text": "{\"name\":\"test\",\"email\":\"[email protected]\"}"
},
"headers": [
{"name":"Authorization","value":"Bearer token","enabled":true}
]
}'
--json 的關鍵欄位:
| 欄位 | 類型 | 備註 |
|---|---|---|
name | string | 顯示名稱 |
method | string | GET、POST、PUT、PATCH、DELETE |
url | string | 請求 URL |
folderId | string | 父資料夾 ID |
bodyType | string | application/json、multipart/form-data、application/x-www-form-urlencoded、text/plain 等 |
body.text | string | 主體內容(若是 application/json 請將 JSON 字串化) |
headers | array | [{name, value, enabled}] |
authenticationType | string | basic、bearer、oauth2 等 |
authentication | object | 依類型的驗證設定 |
更新
yaak request update <req-id> --json '{"name":"Updated Name","url":"https://new-url.com"}'
刪除
yaak request delete <req-id> --yes
發送
yaak send <req-id> # 發送單一請求
yaak send <req-id> -v # 詳細輸出(標頭、事件)
yaak send <folder-id> # 發送資料夾中的所有請求
yaak send <ws-id> --parallel --fail-fast # 發送整個工作區
發送標誌:
--parallel— 並行執行請求--fail-fast— 首次失敗即中止(適用於資料夾/工作區發送)-e <env-id>— 使用環境進行變數置換-v— 詳細輸出(顯示請求/回應標頭、串流主體)
結構內省
yaak request schema http # 用於 HTTP 請求的 JSON Schema
yaak request schema grpc # 用於 gRPC 請求的 JSON Schema
yaak request schema websocket # 用於 WebSocket 請求的 JSON Schema
使用此功能來了解建立/更新時 --json 的確切負載結構。
環境
yaak environment list [<ws-id>] # 列出環境
yaak environment show <env-id> # 顯示包含變數的完整 JSON
yaak environment create [<ws-id>] -n "Production"
yaak environment update <env-id> --json '{
"name": "Production",
"variables": [
{"name":"BASE_URL","value":"https://api.prod.com"},
{"name":"API_KEY","value":"secret123"}
]
}'
yaak environment delete <env-id> --yes
使用環境
將 -e <env-id> 傳遞給任何 send 指令以進行變數置換:
yaak send <req-id> -e <env-id>
請求中的模板語法:
- 變數:
${[ my_var ]} - 函式:
${[ uuid() ]}、${[ timestamp() ]}、${[ fs.readFile('/path') ]}
認證
yaak auth whoami # 檢查登入狀態
yaak auth login # 透過瀏覽器登入
yaak auth logout # 登出
批次操作
從指令碼建立多個請求
#!/bin/bash
WS="wk_..."
FL_AUTH="fl_..."
FL_PROD="fl_..."
# 認證端點
yaak request create "$WS" --json '{"name":"Login","method":"POST","url":"https://api.example.com/auth/login","folderId":"'