HTTP API
从任意 HTTP 客户端驱动 Beam Bench。CLI 也使用同一套接口。
HTTP API是Beam Bench的集成接口。桌面应用、CLI和任何外部客户端都使用同一组路由。如果你的使用场景需要在非CLI环境(Web应用、集成服务器、移动应用或你自己的工具)中使用Beam Bench,请直接调用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没有令牌、密钥或登录功能。
- 绑定到 localhost 时,操作系统级访问模型就是边界:你机器上的任何进程都可以与API通信。
- 启用网络绑定后,同一网络中的任何人都可以与API通信。请勿在不受信任的Wi-Fi上使用网络绑定模式。
请求格式
所有POST/PATCH/PUT请求正文均为JSON:
Content-Type: application/json查询字符串采用扁平的key=value形式。路径段按常规进行URL编码。
响应封装
成功响应直接返回资源正文,不包含包装层:
{
"field": "value",
"...": "..."
}错误响应返回统一封装:
{
"error": {
"code": "InvalidInput",
"message": "Human-readable summary of what went wrong.",
"details": { "...optional structured context..." }
}
}error.code 的取值包括:
| 代码 | HTTP | 含义 |
|---|---|---|
NotFound | 404 | 请求的资源不存在。 |
InvalidInput | 400 | 请求正文或参数格式错误,或被拒绝。 |
InvalidState | 412 | 应用当前状态不适合执行此操作(例如未打开项目)。 |
Busy | 409 | 冲突操作已在进行中。 |
Conflict | 409 | 自你上次读取后,其他写入者已更改该资源。 |
StaleRevision | 412 | 你的修订令牌落后于当前令牌。请重新读取后重试。 |
MachineIo | 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 。
端点分组
| 路径 | 覆盖内容 |
|---|---|
/api/v1/app | 应用级信息:版本、运行时间、功能。 |
/api/v1/agent | 代理能力架构、状态快照和操作指南。 |
/api/v1/projects | 打开、保存、关闭项目;图层、对象、撤销/重做。 |
/api/v1/projects/import | 将 SVG、DXF、PDF、AI 和栅格图像导入项目。 |
/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 和选择端口的位置。