Skip to content

API 参考 ​

Web 管理界面通过 REST API 提供完整的后端功能。所有 API 端点均以 /api 为前缀。

基础信息 ​

  • 基础路径:/api
  • 内容类型:application/json
  • 错误格式:{"error": "错误描述"}

状态与控制 ​

获取引擎状态 ​

GET /api/status

返回引擎的当前运行状态和统计信息。

响应示例:

json
{
  "running": true,
  "start_time": "2024-01-01T00:00:00Z",
  "servers": [
    {
      "host": "free1",
      "scan_count": 150,
      "found_count": 8,
      "bought_count": 3,
      "failed_count": 1,
      "last_scan": "2024-01-01T12:00:00Z",
      "last_error": ""
    }
  ],
  "scan_count": 150,
  "found_count": 8,
  "bought_count": 3,
  "failed_count": 1,
  "last_error": ""
}

字段说明:

字段类型说明
runningbool引擎是否正在运行
start_timestring启动时间(ISO 8601)
serversarray各服务器的状态数组
servers[n].hoststring服务器标识名
servers[n].scan_countint扫描次数
servers[n].found_countint发现飞机数
servers[n].bought_countint购买成功数
servers[n].failed_countint购买失败数
servers[n].last_scanstring最后扫描时间
servers[n].last_errorstring最后错误信息
scan_countint总扫描次数
found_countint总发现数
bought_countint总购买成功数
failed_countint总购买失败数
last_errorstring最后错误信息

启动引擎 ​

POST /api/control/start

启动监控引擎。

成功响应:

json
{
  "status": "started"
}

错误响应(引擎已运行):

json
{
  "error": "engine is already running"
}

停止引擎 ​

POST /api/control/stop

停止监控引擎。

响应:

json
{
  "status": "stopped"
}

重新加载规则 ​

POST /api/reload

从配置文件重新加载规则,无需重启引擎。

响应:

json
{
  "status": "reloaded"
}

配置管理 ​

获取配置 ​

GET /api/config

返回完整的当前配置(包括规则)。

响应: 完整的 Config 对象。

更新配置 ​

PUT /api/config

更新全局配置(不包括规则)。只更新请求中提供的字段,未提供的字段保持不变。

请求体示例:

json
{
  "servers": [
    {"host": "free1", "base_url": "https://free1.airlinesim.aero"}
  ],
  "monitor": {
    "interval": 60,
    "jitter": 20
  },
  "notifier": {
    "console": true,
    "discord_webhook": "https://discord.com/api/webhooks/..."
  },
  "webui": {
    "host": "0.0.0.0",
    "port": 9090
  }
}

规则管理 ​

获取规则列表 ​

GET /api/rules

返回所有规则的数组。

响应: RuleConfig[]

创建规则 ​

POST /api/rules

创建一条新规则。

请求体:

json
{
  "name": "新规则",
  "enabled": true,
  "priority": 10,
  "server_id": 0,
  "auth_id": 0,
  "match": {
    "types": ["Airbus A320-200 heavy"],
    "price_range": {"min": 500000, "max": 5000000},
    "max_age": 15,
    "max_cycles": 30000,
    "condition_min": 70,
    "offer_types": ["auction", "immediate"],
    "financing": ["cash", "credit", "lease"]
  },
  "action": {
    "auto_buy": true,
    "snatch": false,
    "max_bid_increment": 100000
  }
}

状态码: 201 Created

获取单条规则 ​

GET /api/rules/{id}

按索引获取规则。{id} 是规则的数组索引(从 0 开始)。

成功响应: RuleConfig 对象

错误响应:

json
{
  "error": "rule not found"
}

更新规则 ​

PUT /api/rules/{id}

按索引更新规则。

请求体: 完整的 RuleConfig 对象

状态码: 200 OK

删除规则 ​

DELETE /api/rules/{id}

按索引删除规则。

响应:

json
{
  "status": "deleted"
}

切换规则启用状态 ​

PATCH /api/rules/{id}/toggle

切换指定规则的启用/禁用状态。

响应: 更新后的 RuleConfig 对象

重新排序规则 ​

PUT /api/rules/reorder

重新排序规则列表。

请求体: 一个整数数组,表示新的索引顺序

json
[2, 0, 1]

飞机数据 ​

获取飞机市场参考数据 ​

GET /api/aircraft-data

返回飞机系列和型号的参考数据,用于 Web 界面的下拉选择。

响应示例:

json
{
  "families": [
    {"id": "1200300", "name": "A320 / A321"},
    {"id": "2200400", "name": "737-600/700/800/900"}
  ],
  "types": [
    {"id": "16", "name": "Airbus A320-200 heavy"},
    {"id": "97", "name": "Boeing 737-800 BGW"}
  ]
}

通用错误 ​

状态码说明
400 Bad Request请求体格式错误或参数无效
404 Not Found请求的资源(如规则)不存在
409 Conflict状态冲突(如引擎已在运行)
500 Internal Server Error服务器内部错误

数据模型 ​

Config ​

字段类型说明
serversServerConfig[]服务器列表
authsAuthConfig[]认证账户列表
monitorMonitorConfig监控设置
notifierNotifierConfig通知设置
webuiWebUIConfigWebUI 设置
rulesRuleConfig[]规则列表

ServerConfig ​

字段类型说明
hoststring服务器标识名
base_urlstring服务器基础 URL

AuthConfig ​

字段类型说明
usernamestring用户名
passwordstring密码
session_filestring会话文件路径

MonitorConfig ​

字段类型说明
intervalint轮询间隔(秒)
jitterint随机延迟(秒)
request_timeoutint请求超时(秒)
min_balancefloat最低余额保护

NotifierConfig ​

字段类型说明
consolebool控制台输出
discord_webhookstringDiscord Webhook URL

WebUIConfig ​

字段类型说明
enabledbool是否启用
hoststring监听地址
portint监听端口

RuleConfig ​

字段类型说明
namestring规则名称
enabledbool是否启用
priorityint优先级
server_idint目标服务器索引(-1 表示全部)
auth_idint执行账户索引
matchMatchConfig匹配条件
actionActionConfig操作设置

MatchConfig ​

字段类型说明
family_idstring飞机系列 ID
type_idstring飞机型号 ID
typesstring[]型号名称列表
price_rangePriceRange价格范围
max_ageint最大机龄(年)
max_cyclesint最大飞行循环
condition_minfloat最低状态(%)
offer_typesstring[]交易类型
financingstring[]融资方式
sort_bystring排序方式

PriceRange ​

字段类型说明
minfloat最低价格
maxfloat最高价格

ActionConfig ​

字段类型说明
auto_buybool是否自动购买
snatchbool是否启用抢购
max_bid_incrementfloat最大加价幅度

Released under AGPL-3.0.