HTTP API
通过任意HTTP客户端驱动Beam Bench。与CLI通信的同一接口。
HTTP API是Beam Bench的集成接口。大多数CLI命令和外部客户端使用这些路由。桌面前端通过Tauri IPC调用共享服务,正常使用不需要HTTP服务器。如果你的用例需要在非CLI环境中使用Beam Bench(Web应用、集成服务器、移动应用或自有工具),请直接使用API。
API随桌面应用一起提供,并在进程内运行。不需要安装单独的服务。
默认设置与安全性
在当前版本中,本地API服务器使用以下设置:
- 本地 API:关闭。
- API 端口:5900。
- 允许网络设备:关闭。启用API后,它会绑定到
127.0.0.1,只接受来自此计算机的连接。
在选择启用之前,API不会监听连接。启用网络访问需要单独选择,因为API未经身份验证,并包含可移动机器和启动激光的操作。
如需使用API,请从设置 → 常规更改其设置:
- 打开桌面应用。
- 编辑 → 设置 → 常规。
- 打开本地 API。
- 除非必须让其他受信任设备连接,否则请关闭允许网络设备。
更改会立即生效,无需重启。
基础URL
http://<host>:5900/api/v1当允许网络设备关闭时,<host>为localhost(或127.0.0.1)。开启后,网络中的任何设备都可以通过机器的局域网IP访问服务器。
端口可在设置 → 常规中配置,默认值为5900。
身份验证
无。API没有令牌、密钥或登录功能。
- 使用本地主机绑定时,操作系统级访问模型就是边界:计算机上的任何进程都可以与API通信。
- 启用网络绑定后,同一网络上的任何人都可以与API通信。请勿在不受信任的Wi-Fi上使用网络绑定模式。
请求格式
所有POST/PATCH/PUT请求体都使用JSON:
Content-Type: application/json查询字符串是扁平的key=value形式。路径段按通常方式进行URL编码。
响应封装
成功响应直接返回资源体,不使用封装:
{
"field": "value",
"...": "..."
}错误返回统一的封装:
{
"error": {
"code": "invalid_input",
"message": "Human-readable summary of what went wrong.",
"details": { "...optional structured context..." }
}
}error.code的取值包括:
| 代码 | HTTP | 含义 |
|---|---|---|
not_found | 404 | 请求的资源不存在。 |
invalid_input | 400 | 请求体或参数格式错误,或被拒绝。 |
invalid_state | 412 | 应用当前不处于适合执行此操作的状态(例如没有打开项目)。 |
busy | 409 | 已有冲突操作正在进行。 |
conflict | 409 | 自上次读取后,另一位写入者更改了该资源。 |
stale_revision | 412 | 你的修订令牌落后于当前令牌。请重新读取后重试。 |
machine_io | 502 | 机器连接失败(断开、超时或传输错误)。 |
persistence | 500 | 磁盘读写失败。 |
internal | 500 | 意外的服务器错误。请将其报告为错误。 |
需要确认的错误
少数操作可以移动机器或启动激光。这些端点要求在请求体中明确提供确认标志。如果缺少该标志,API会返回428 Precondition Required:
{
"error_code": "CONFIRMATION_REQUIRED",
"missing": ["confirm_motion"],
"message": "This command can move the machine and requires explicit confirmation."
}请将命名标志设置为true后重新发送请求。当前使用的标志包括confirm_motion、confirm_laser_on、confirm_raw_gcode和confirm_air_assist。
并发项目编辑
设计事务会在提交时比较其捕获的项目。并发编辑、切换项目或关闭项目可能返回stale_revision。请刷新状态,并在重试前重新评估更改。不要盲目地将较旧的项目快照重新覆盖到较新的工作上。
端点组
| 路径 | 覆盖内容 |
|---|---|
/api/v1/app | 应用级信息:版本、运行时间和功能。 |
/api/v1/agent | 代理功能架构、状态快照和操作指南。 |
/api/v1/projects | 打开、保存和关闭项目。图层、对象、撤销和重做。 |
/api/v1/projects/import | 导入LightBurn、SVG、DXF、PDF、AI、EPS和栅格文件。专用路由处理有限的G-code几何导入。 |
/api/v1/export | 将项目渲染为SVG、DXF、PDF、EPS和AI。 |
/api/v1/design | 描述当前设计、渲染为PNG并应用事务性编辑。 |
/api/v1/preview | 生成切割预览和统计信息。 |
/api/v1/jobs | 预检、运行、空运行、暂停、恢复、走框和停止。 |
/api/v1/machine | 连接、断开连接、查看状态、点动和回零。 |
/api/v1/camera | 设备、状态、捕获、叠加(显示、变换、渲染)、校准和对齐。 |
/api/v1/console | 发送原始G-code。读取最近的控制台日志。 |
/api/v1/macros | 列出、保存和运行用户宏。 |
/api/v1/materials | 材料库:按材料和厚度索引的预设。 |
/api/v1/profiles | 机器配置:创建、列出和应用。 |
/api/v1/assets | 图稿库资源访问。 |
/api/v1/vector | 矢量操作:转换、布尔运算、分组和路径。 |
/api/v1/events | 状态变化和机器事件的WebSocket流。 |
各资源的参考页面仍在完善中;在此期间请参考代理功能架构。
发现实时接口
查看已安装版本公开内容的最快方式:
curl -s http://localhost:5900/api/v1/agent/capabilities | jq .这会返回完整的功能架构,包括每个端点、其参数和响应结构。该架构是权威说明,本页面是对它的指南。
查看状态信息:
curl -s http://localhost:5900/api/v1/agent/state | jq .查看如何驱动应用的书面说明:
curl -s http://localhost:5900/api/v1/agent/guide版本控制
所有路由都位于/api/v1下。发生破坏性更改时,将放入/api/v2。新增端点和新的可选字段等增量更改会在v1中发布,不增加版本号。
相关内容
- HTTP API使用指南:通过带有完整示例的教程式介绍入门。
- CLI和应用如何共享状态:这些端点背后的一致性模型。
- 设置 → 常规:启用API和选择端口的位置。