# HTTPie 可导入 cURL 集合 **推荐:** 直接导入 Postman 集合(一次导入全部) ``` docs/httpie/postman_collection.json ``` HTTPie → Import → Postman → 选择该文件。 **单条导入:** Import → cURL → 粘贴下方某一条完整 `curl`。 替换占位符: | 占位符 | 说明 | |--------|------| | `http://localhost:8080` | 服务地址 | | `admin-sk-change-me` | `config.yaml` 的 `server.admin_key` | | `SOURCE_API_KEY` | 创建 Source 返回的 `api_key` | | `:id` / `1` | 资源数字 ID | --- ## Health ### 健康检查 ```bash curl -X GET 'http://localhost:8080/health' ``` --- ## Notify ### 发送通知(JSON) ```bash curl -X POST 'http://localhost:8080/api/v1/notify' \ -H 'Authorization: Bearer SOURCE_API_KEY' \ -H 'Content-Type: application/json' \ -d '{ "event": "trade.open", "data": { "symbol": "BTC", "price": 65000 } }' ``` ### 发送通知(Regex) ```bash curl -X POST 'http://localhost:8080/api/v1/notify' \ -H 'Authorization: Bearer SOURCE_API_KEY' \ -H 'Content-Type: text/plain' \ --data-binary 'trade.open BTC 开仓 价格:65000' ``` ### 发送通知(Text,event=default) ```bash curl -X POST 'http://localhost:8080/api/v1/notify' \ -H 'Authorization: Bearer SOURCE_API_KEY' \ -H 'Content-Type: text/plain' \ --data-binary 'BTC 突破 68000,请注意风险' ``` --- ## Sources ### 创建 Source(JSON) ```bash curl -X POST 'http://localhost:8080/api/v1/sources' \ -H 'Authorization: Bearer admin-sk-change-me' \ -H 'Content-Type: application/json' \ -d '{ "name": "trading-system", "parse_mode": "json", "status": 1 }' ``` ### 创建 Source(Regex) ```bash curl -X POST 'http://localhost:8080/api/v1/sources' \ -H 'Authorization: Bearer admin-sk-change-me' \ -H 'Content-Type: application/json' \ -d '{ "name": "legacy-monitor", "parse_mode": "regex", "parse_pattern": "(?P\\w+)\\s+(?P.+)" }' ``` ### 创建 Source(Text) ```bash curl -X POST 'http://localhost:8080/api/v1/sources' \ -H 'Authorization: Bearer admin-sk-change-me' \ -H 'Content-Type: application/json' \ -d '{ "name": "alert-bot", "parse_mode": "text" }' ``` ### 列出 Source ```bash curl -X GET 'http://localhost:8080/api/v1/sources?page=1&page_size=20' \ -H 'Authorization: Bearer admin-sk-change-me' ``` ### 获取 Source ```bash curl -X GET 'http://localhost:8080/api/v1/sources/1' \ -H 'Authorization: Bearer admin-sk-change-me' ``` ### 更新 Source ```bash curl -X PUT 'http://localhost:8080/api/v1/sources/1' \ -H 'Authorization: Bearer admin-sk-change-me' \ -H 'Content-Type: application/json' \ -d '{ "name": "trading-system", "parse_mode": "json", "status": 1 }' ``` ### 删除 Source ```bash curl -X DELETE 'http://localhost:8080/api/v1/sources/1' \ -H 'Authorization: Bearer admin-sk-change-me' ``` --- ## Templates ### 创建 Template ```bash curl -X POST 'http://localhost:8080/api/v1/templates' \ -H 'Authorization: Bearer admin-sk-change-me' \ -H 'Content-Type: application/json' \ -d '{ "name": "trade_open", "content": "### {{.symbol}} 开仓\n价格: {{.price}}" }' ``` ### 列出 Template ```bash curl -X GET 'http://localhost:8080/api/v1/templates?page=1&page_size=20' \ -H 'Authorization: Bearer admin-sk-change-me' ``` ### 获取 Template ```bash curl -X GET 'http://localhost:8080/api/v1/templates/1' \ -H 'Authorization: Bearer admin-sk-change-me' ``` ### 更新 Template ```bash curl -X PUT 'http://localhost:8080/api/v1/templates/1' \ -H 'Authorization: Bearer admin-sk-change-me' \ -H 'Content-Type: application/json' \ -d '{ "name": "trade_open", "content": "### {{.symbol}} 开仓\n价格: {{.price}}" }' ``` ### 删除 Template ```bash curl -X DELETE 'http://localhost:8080/api/v1/templates/1' \ -H 'Authorization: Bearer admin-sk-change-me' ``` --- ## Channels ### 创建 Channel(Email) ```bash curl -X POST 'http://localhost:8080/api/v1/channels' \ -H 'Authorization: Bearer admin-sk-change-me' \ -H 'Content-Type: application/json' \ -d '{ "name": "email-ops", "type": "email", "config": { "to": ["148516886@qq.com"] }, "status": 1 }' ``` ### 创建 Channel(钉钉) ```bash curl -X POST 'http://localhost:8080/api/v1/channels' \ -H 'Authorization: Bearer admin-sk-change-me' \ -H 'Content-Type: application/json' \ -d '{ "name": "dingtalk-prod", "type": "dingtalk", "config": { "access_token": "xxx", "secret": "SEC..." }, "status": 1 }' ``` ### 创建 Channel(企业微信) ```bash curl -X POST 'http://localhost:8080/api/v1/channels' \ -H 'Authorization: Bearer admin-sk-change-me' \ -H 'Content-Type: application/json' \ -d '{ "name": "wecom-ops", "type": "wecom", "config": { "webhook_url": "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx" }, "status": 1 }' ``` ### 创建 Channel(Bark) ```bash curl -X POST 'http://localhost:8080/api/v1/channels' \ -H 'Authorization: Bearer admin-sk-change-me' \ -H 'Content-Type: application/json' \ -d '{ "name": "bark-phone", "type": "bark", "config": { "url": "https://api.day.app/" }, "status": 1 }' ``` ### 创建 Channel(SafeW) ```bash curl -X POST 'http://localhost:8080/api/v1/channels' \ -H 'Authorization: Bearer admin-sk-change-me' \ -H 'Content-Type: application/json' \ -d '{ "name": "safew-ops", "type": "safew", "config": { "token": "", "chat_id": "123456789" }, "status": 1 }' ``` ### 列出 SafeW 群(创建渠道时) ```bash curl -X POST 'http://localhost:8080/api/v1/channels/safew/chats' \ -H 'Authorization: Bearer admin-sk-change-me' \ -H 'Content-Type: application/json' \ -d '{"token":"","q":"测试AI"}' ``` ### 列出 SafeW 群(已有渠道) ```bash curl -X GET 'http://localhost:8080/api/v1/channels/1/chats?q=' \ -H 'Authorization: Bearer admin-sk-change-me' ``` ### 列出 Channel ```bash curl -X GET 'http://localhost:8080/api/v1/channels?page=1&page_size=20' \ -H 'Authorization: Bearer admin-sk-change-me' ``` ### 获取 Channel ```bash curl -X GET 'http://localhost:8080/api/v1/channels/1' \ -H 'Authorization: Bearer admin-sk-change-me' ``` ### 更新 Channel ```bash curl -X PUT 'http://localhost:8080/api/v1/channels/1' \ -H 'Authorization: Bearer admin-sk-change-me' \ -H 'Content-Type: application/json' \ -d '{ "name": "email-ops", "type": "email", "config": { "to": ["148516886@qq.com"] }, "status": 1 }' ``` ### 删除 Channel ```bash curl -X DELETE 'http://localhost:8080/api/v1/channels/1' \ -H 'Authorization: Bearer admin-sk-change-me' ``` --- ## Rules ### 创建 Rule ```bash curl -X POST 'http://localhost:8080/api/v1/rules' \ -H 'Authorization: Bearer admin-sk-change-me' \ -H 'Content-Type: application/json' \ -d '{ "name": "trade-open-alert", "source_name": "trading-system", "event": "trade.open", "template_name": "trade_open", "channels": ["email-ops"], "conditions": [ {"field": "symbol", "op": "exists"}, {"field": "price", "op": "gt", "value": "0"} ], "enabled": 1 }' ``` ### 列出 Rule ```bash curl -X GET 'http://localhost:8080/api/v1/rules?page=1&page_size=20' \ -H 'Authorization: Bearer admin-sk-change-me' ``` ### 获取 Rule ```bash curl -X GET 'http://localhost:8080/api/v1/rules/1' \ -H 'Authorization: Bearer admin-sk-change-me' ``` ### 更新 Rule ```bash curl -X PUT 'http://localhost:8080/api/v1/rules/1' \ -H 'Authorization: Bearer admin-sk-change-me' \ -H 'Content-Type: application/json' \ -d '{ "name": "trade-open-alert", "source_name": "trading-system", "event": "trade.open", "template_name": "trade_open", "channels": ["email-ops"], "enabled": 1 }' ``` ### 删除 Rule ```bash curl -X DELETE 'http://localhost:8080/api/v1/rules/1' \ -H 'Authorization: Bearer admin-sk-change-me' ``` ### 启用 Rule ```bash curl -X PATCH 'http://localhost:8080/api/v1/rules/1/enable' \ -H 'Authorization: Bearer admin-sk-change-me' ``` ### 禁用 Rule ```bash curl -X PATCH 'http://localhost:8080/api/v1/rules/1/disable' \ -H 'Authorization: Bearer admin-sk-change-me' ``` ### 启用规则下某渠道 ```bash curl -X PATCH 'http://localhost:8080/api/v1/rules/1/channels/1/enable' \ -H 'Authorization: Bearer admin-sk-change-me' ``` ### 禁用规则下某渠道 ```bash curl -X PATCH 'http://localhost:8080/api/v1/rules/1/channels/1/disable' \ -H 'Authorization: Bearer admin-sk-change-me' ``` --- ## Message Logs ### 查询消息记录 ```bash curl -X GET 'http://localhost:8080/api/v1/message-logs?source=trading-system&event=trade.open&status=success&page=1&page_size=20' \ -H 'Authorization: Bearer admin-sk-change-me' ``` --- ## AI crypto signals(crypto-strategy) Source:`crypto-strategy`。渠道:`safew_ai_crypto_signals`。条件:`strategyCode = ai-crypto-signals`。 事件:开仓(多/空)→ `trade.open`;止盈 → `trade.gain`;止损 → `trade.close`。空单开仓不再发 `trade.sell`。 开仓渲染示例: ``` 预警时间:2026-08-16 03:20:13 预警币种:APE 交易方向:做多 建议杠杆:31x 入场区域:0.1235 风险控制(止损):0.1223 止盈目标: TP1:0.1241 TP2:0.1247 TP3:0.1253 TP4:0.1259 TP5:0.1265 推送时间:2026-08-16 03:20:13 ``` 止盈渲染示例: ``` 止盈时间:2026-08-16 16:29:23 预警币种:LTC 执行操作:到达第一止盈 (TP1) 平仓点位:44.63 预警收益:+14.2793% 预警周期:53分钟 ``` 止损渲染示例: ``` 止损时间:2026-08-16 16:17:15 预警币种:ETH 执行操作:触发止损 平仓点位:1887 最终损益:-30.1557% ``` ### 创建开仓模板 ```bash curl -X POST 'http://localhost:8080/api/v1/templates' \ -H 'Authorization: Bearer admin-sk-change-me' \ -H 'Content-Type: application/json' \ -d '{ "name": "ai_crypto_signals_open", "content": "预警时间:{{.pushedAt}}\n预警币种:{{.symbol}}\n交易方向:{{case .side \"LONG\" \"做多\" \"SHORT\" \"做空\"}}\n{{line \"建议杠杆\" .leverageText}}入场区域:{{.entryRange}}\n{{line \"风险控制(止损)\" .stopLossPrice}}止盈目标:\n{{with .tp1}}TP1:{{.}}\n{{end}}{{with .tp2}}TP2:{{.}}\n{{end}}{{with .tp3}}TP3:{{.}}\n{{end}}{{with .tp4}}TP4:{{.}}\n{{end}}{{with .tp5}}TP5:{{.}}\n{{end}}推送时间:{{.pushedAt}}" }' ``` ### 创建止盈模板 ```bash curl -X POST 'http://localhost:8080/api/v1/templates' \ -H 'Authorization: Bearer admin-sk-change-me' \ -H 'Content-Type: application/json' \ -d '{ "name": "ai_crypto_signals_gain", "content": "止盈时间:{{.pushedAt}}\n预警币种:{{.symbol}}\n执行操作:{{.closeAction}}\n平仓点位:{{.price}}\n预警收益:{{.revenueDisplay}}\n{{line \"预警周期\" .holdPeriod}}" }' ``` ### 创建止损模板 ```bash curl -X POST 'http://localhost:8080/api/v1/templates' \ -H 'Authorization: Bearer admin-sk-change-me' \ -H 'Content-Type: application/json' \ -d '{ "name": "ai_crypto_signals_close", "content": "止损时间:{{.pushedAt}}\n预警币种:{{.symbol}}\n执行操作:触发止损\n平仓点位:{{.price}}\n最终损益:{{.revenueDisplay}}\n{{line \"预警周期\" .holdPeriod}}" }' ``` ### 创建开仓 / 止盈 / 止损规则 ```bash curl -X POST 'http://localhost:8080/api/v1/rules' \ -H 'Authorization: Bearer admin-sk-change-me' \ -H 'Content-Type: application/json' \ -d '{ "name": "AI crypto signals 开仓", "source_name": "crypto-strategy", "event": "trade.open", "template_name": "ai_crypto_signals_open", "channels": ["safew_ai_crypto_signals"], "conditions": [ {"field": "strategyCode", "op": "eq", "value": "ai-crypto-signals"} ], "enabled": 1 }' ``` ```bash curl -X POST 'http://localhost:8080/api/v1/rules' \ -H 'Authorization: Bearer admin-sk-change-me' \ -H 'Content-Type: application/json' \ -d '{ "name": "AI crypto signals 止盈", "source_name": "crypto-strategy", "event": "trade.gain", "template_name": "ai_crypto_signals_gain", "channels": ["safew_ai_crypto_signals"], "conditions": [ {"field": "strategyCode", "op": "eq", "value": "ai-crypto-signals"} ], "enabled": 1 }' ``` ```bash curl -X POST 'http://localhost:8080/api/v1/rules' \ -H 'Authorization: Bearer admin-sk-change-me' \ -H 'Content-Type: application/json' \ -d '{ "name": "AI crypto signals 止损", "source_name": "crypto-strategy", "event": "trade.close", "template_name": "ai_crypto_signals_close", "channels": ["safew_ai_crypto_signals"], "conditions": [ {"field": "strategyCode", "op": "eq", "value": "ai-crypto-signals"} ], "enabled": 1 }' ``` --- ## AG 趋势 / 异动 / 波段跟踪(crypto-strategy) Source:`crypto-strategy`。Convert 后事件为 `AGTS.*` / `AMA.*` / `BTS.*`(与 `trade.*` 分开,避免和 AI crypto signals 抢精确匹配)。 | 策略 | strategyCode | 样例 payload | Convert event | |------|--------------|--------------|---------------| | AG趋势 | `AGTS` | `isSale` 开仓,带 `gainPrices` / `openPrice2` / `lossPrice` | `AGTS.open` | | 异动 | `AMA` | 开仓,仅 `price` | `AMA.open` | | 波段跟踪 | `BTS` | `isClose=true`,仅 `price` | `BTS.close` | 有效期按样例写死:AG 6 天、异动 2-4 天、波段 17h。波段周期含 `2h` → `2小时`。 ### 创建 AG 趋势模板 ```bash curl -X POST 'http://localhost:8080/api/v1/templates' \ -H 'Authorization: Bearer admin-sk-change-me' \ -H 'Content-Type: application/json' \ -d '{ "name": "ag_trend", "content": "监控告警提醒\n\n操作策略:AG趋势{{case .symbol \"BTCUSDT\" \"BTC\" \"ETHUSDT\" \"ETH\" \"SOLUSDT\" \"SOL\" \"BNBUSDT\" \"BNB\" .symbol}}-{{case .period \"1h\" \"1小时\" \"2h\" \"2小时\" \"4h\" \"4小时\" \"6h\" \"6小时\" \"15m\" \"15分钟\" \"5m\" \"5分钟\" \"30m\" \"30分钟\" \"1d\" \"1日\" .period}}周期{{case .side \"LONG\" \"做多\" \"SHORT\" \"做空\"}}\n\n提醒时间:{{.pushedAt}}\n\n{{with .takeProfitRange}}止盈目标:{{.}}\n\n{{else}}{{with .takeProfitPrice}}止盈目标:{{.}}\n\n{{end}}{{end}}{{with .entryRange}}介入区间:{{.}}\n\n{{else}}{{with .price}}介入区间:{{.}}\n\n{{end}}{{end}}{{with .stopLossPrice}}止损价位:{{.}}\n\n{{end}}有效期:6天" }' ``` ### 创建异动预警模板 ```bash curl -X POST 'http://localhost:8080/api/v1/templates' \ -H 'Authorization: Bearer admin-sk-change-me' \ -H 'Content-Type: application/json' \ -d '{ "name": "anomaly_alert", "content": "监控告警提醒\n\n监控名称:异动预警\n\n监控时间:{{.pushedAt}}\n\n监控目标:{{case .symbol \"BTCUSDT\" \"BTC\" \"ETHUSDT\" \"ETH\" \"SOLUSDT\" \"SOL\" \"BNBUSDT\" \"BNB\" .symbol}}异动预警(暴涨/跌)生效\n\n监控提醒:异动发生概率v1(v1