SRA Server API
SRA-server 提供 RESTful API 用于控制 SRA 的运行。所有 API 端点在生产环境下带有 /api 前缀(如 /api/Task/status)。
通用响应格式
Section titled “通用响应格式”所有 API 返回统一的 JSON 响应格式:
{ "success": true, "message": "success", "data": { ... }}success 为 false 时,message 中包含错误描述。
获取任务状态
Section titled “获取任务状态”GET /api/Task/status获取当前任务的运行状态。
响应示例:
{ "success": true, "message": "success", "data": { "status": "running", "progress": "领取奖励中..." }}POST /api/Task/run运行指定配置中的所有任务。支持三种调用方式:
方式一:使用已有配置名
{ "configName": "Default"}方式二:传入完整配置并持久化保存
{ "config": { ... }, "persist": true}方式三:传入完整配置作为临时配置(不保存)
{ "config": { ... }, "persist": false}错误码:
| 状态码 | 说明 |
|---|---|
| 400 | 配置不存在 |
| 409 | 任务正在运行中 |
| 500 | 后端错误 |
运行单个任务
Section titled “运行单个任务”POST /api/Task/single运行指定的单个任务。
{ "taskName": "ReceiveRewardsTask", "configName": "Default"}taskName:任务的类名或索引(如"ReceiveRewardsTask"或"2")configName:可选,指定配置名,留空则使用当前配置
错误码:
| 状态码 | 说明 |
|---|---|
| 409 | 任务正在运行中 |
| 500 | 后端错误 |
POST /api/Task/stop停止当前正在运行的任务。无请求参数。
POST /api/Backend/restart重启后端进程(SRA-cli 或 Python)。
{ "arguments": "--inline --no-admin"}arguments:可选,后端启动参数,默认为"--inline --no-admin"
错误码:
| 状态码 | 说明 |
|---|---|
| 500 | 重启失败 |
获取后端日志
Section titled “获取后端日志”GET /api/Backend/logs?count=100获取最近 N 条后端日志。
count:可选,返回的日志条数,默认 100
响应示例:
{ "success": true, "message": "success", "data": ["[INFO] 正在初始化...", "[INFO] 就绪"]}SSE 日志流
Section titled “SSE 日志流”GET /api/Backend/logs/stream以 Server-Sent Events (SSE) 格式实时推送后端日志。
响应格式: text/event-stream
data: [INFO] 正在初始化...
data: [INFO] 就绪获取所有配置名
Section titled “获取所有配置名”GET /api/Configs返回所有配置的名称列表。
响应示例:
{ "success": true, "message": "success", "data": ["Default", "PlanB", "MyConfig"]}获取指定配置
Section titled “获取指定配置”GET /api/Configs/{configName}获取指定配置的详细内容。
返回的配置中 startGame 的 username、password、encryptedUsername、encryptedPassword 字段会被自动移除,以保护敏感信息。
错误码: 404 — 配置不存在
POST /api/Configs/{configName}创建一个新的任务配置。配置名称不能包含以下字符:
\ / : * ? " < > |错误码:
| 状态码 | 说明 |
|---|---|
| 400 | 名称包含非法字符 |
| 409 | 配置已存在 |
PUT /api/Configs/{configName}更新指定配置的内容。请求体为完整的 TasksConfig JSON 对象。
错误码: 404 — 配置不存在
DELETE /api/Configs/{configName}删除指定配置。
错误码: 404 — 配置不存在
GET /api/Settings获取完整的应用设置。设置包含五个部分:
| 分区 | 说明 |
|---|---|
general |
游戏路径、启动参数、云游戏、OCR/模板匹配置信度等 |
display |
背景图片、面板透明度、语言、窗口状态 |
update |
下载渠道、自动更新、更新频道 |
advanced |
后端参数、远程后端、开发者模式、Python 配置 |
notification |
通知渠道配置(Bark、邮件、Telegram 等) |
PUT /api/Settings按字段修改设置,支持部分更新。请求体格式为分层 JSON:
{ "general": { "gamePath": "D:\\Games\\StarRail\\StarRail.exe" }, "advanced": { "backend": { "remote": { "enabled": true, "url": "http://192.168.1.100:5000" } } }}响应: 返回更新的字段列表。
错误码: 400 — 无有效更新
GET /api/Extensions列出所有已注册的扩展模块。
获取扩展 Schema
Section titled “获取扩展 Schema”GET /api/Extensions/{id}/schema获取指定扩展的配置 JSON Schema。
获取扩展配置
Section titled “获取扩展配置”GET /api/Extensions/{id}/config获取扩展的当前配置值(JSON 字符串)。
设置扩展配置
Section titled “设置扩展配置”PUT /api/Extensions/{id}/config设置扩展的配置值。请求体为 JSON 字符串。
POST /api/Extensions/{id}/run运行指定扩展。
config:可选,查询参数,指定配置名
POST /api/Extensions/{id}/stop停止指定扩展。
POST /api/Extensions/reload重新扫描并导入所有扩展模块。
截取游戏画面
Section titled “截取游戏画面”GET /api/Operator/screenshot获取当前游戏窗口的截图,分辨率为 720p,返回 PNG 图片。
响应: image/png
列出可用操作
Section titled “列出可用操作”GET /api/Operator/list列出所有可用的 Operator 方法。
获取操作帮助
Section titled “获取操作帮助”GET /api/Operator/help/{method}获取指定 Operator 方法的详细帮助信息。
POST /api/Operator/call调用指定的 Operator 方法并传递参数。
{ "method": "screenshot", "params": {}}method:方法名称(必填)params:方法参数(可选)
错误码:
| 状态码 | 说明 |
|---|---|
| 400 | method 为空 |
| 500 | 后端错误 |
POST /api/Auth验证访问令牌。此端点无需认证。
{ "token": "your-token"}响应:
- 200:认证成功或未配置 Token(此时所有请求无需认证)
- 401:认证失败
