API HTTP
Controla Beam Bench desde cualquier cliente HTTP. La misma interfaz con la que se comunica la CLI.
La API HTTP es la interfaz de integración de Beam Bench. La aplicación de escritorio, la CLI y cualquier cliente externo se comunican con las mismas rutas. Si tienes un caso de uso que requiere Beam Bench en un entorno que no sea la CLI (aplicación web, servidor de integración, aplicación móvil o tus propias herramientas), usa la API directamente.
La API se incluye con la aplicación de escritorio y se ejecuta dentro del proceso. No es necesario instalar ningún servicio independiente.
Valores predeterminados y seguridad
En la compilación actual, el servidor de API local se incluye con esta configuración:
- API local: desactivada.
- Puerto de la API: 5900.
- Permitir dispositivos de red: desactivada. Cuando la API está activada, se enlaza a
127.0.0.1y acepta conexiones únicamente desde esta computadora.
La API no escucha conexiones hasta que la habilitas explícitamente. Activar el acceso de red requiere una confirmación independiente porque la API no tiene autenticación e incluye operaciones que pueden mover la máquina y activar el láser.
Para usar la API, cambia su configuración desde Configuración → General:
- Abre la aplicación de escritorio.
- Editar → Configuración → General.
- Activa API local.
- Deja Permitir dispositivos de red desactivada, a menos que otro dispositivo de confianza deba conectarse.
Los cambios se aplican de inmediato; no es necesario reiniciar.
URL base
http://<host>:5900/api/v1<host> es localhost (o 127.0.0.1) cuando Permitir dispositivos de red está desactivada. Cuando está activada, se puede acceder al servidor mediante la IP de LAN de la máquina desde cualquier dispositivo de la red.
El puerto se puede configurar en Configuración → General; 5900 es el valor predeterminado.
Autenticación
Ninguna. La API no tiene token, clave ni inicio de sesión.
- Con el enlace a localhost, el modelo de acceso del sistema operativo es el límite: cualquier proceso de tu computadora puede comunicarse con la API.
- Con el enlace de red activado, cualquier persona en la misma red puede comunicarse con la API. No uses el modo de enlace de red en una red Wi-Fi que no sea de confianza.
Formato de solicitud
Todos los cuerpos POST/PATCH/PUT son JSON:
Content-Type: application/jsonLas cadenas de consulta son pares planos key=value. Los segmentos de ruta se codifican como URL de la forma habitual.
Contenedor de respuesta
Las respuestas exitosas devuelven directamente el cuerpo del recurso, sin contenedor:
{
"field": "value",
"...": "..."
}Los errores devuelven un contenedor uniforme:
{
"error": {
"code": "InvalidInput",
"message": "Human-readable summary of what went wrong.",
"details": { "...optional structured context..." }
}
}error.code puede ser uno de los siguientes:
| Código | HTTP | Significado |
|---|---|---|
NotFound | 404 | El recurso solicitado no existe. |
InvalidInput | 400 | El cuerpo o los parámetros de la solicitud tienen un formato incorrecto o fueron rechazados. |
InvalidState | 412 | La aplicación no se encuentra en un estado en el que esta operación tenga sentido (por ejemplo, no hay ningún proyecto abierto). |
Busy | 409 | Ya hay una operación en conflicto en curso. |
Conflict | 409 | Otro escritor modificó el recurso desde la última vez que lo leíste. |
StaleRevision | 412 | Tu token de revisión está por detrás del actual. Vuelve a leerlo e inténtalo de nuevo. |
MachineIo | 502 | Falló la conexión con la máquina (desconexión, tiempo de espera agotado o error de transporte). |
Persistence | 500 | Falló la lectura o escritura en el disco. Repórtalo como un error. |
Internal | 500 | Error inesperado del servidor. Repórtalo como un error. |
Errores que requieren confirmación
Un pequeño conjunto de operaciones puede mover la máquina o activar el láser. Esos endpoints requieren una marca de confirmación explícita en el cuerpo de la solicitud. Si falta, la API devuelve 428 Precondition Required:
{
"error_code": "CONFIRMATION_REQUIRED",
"missing": ["confirm_motion"],
"message": "This command can move the machine and requires explicit confirmation."
}Vuelve a enviar la solicitud con la marca indicada establecida en true. Las marcas que se usan actualmente son confirm_motion, confirm_laser_on, confirm_raw_gcode y confirm_air_assist.
Grupos de endpoints
| Ruta | Qué incluye |
|---|---|
/api/v1/app | Información de la aplicación: versión, tiempo activo y capacidades. |
/api/v1/agent | Esquema de capacidades del agente, instantánea del estado y guía operativa. |
/api/v1/projects | Abrir, guardar y cerrar. Capas, objetos, deshacer y rehacer. |
/api/v1/projects/import | Importar SVG, DXF, PDF, AI e imágenes rasterizadas a un proyecto. |
/api/v1/export | Renderizar un proyecto a SVG, DXF, PDF, EPS o AI. |
/api/v1/design | Describir el diseño actual, renderizarlo a PNG y aplicar ediciones transaccionales. |
/api/v1/preview | Generar vistas previas de corte y estadísticas. |
/api/v1/jobs | Comprobación previa, ejecutar, simulación, pausar, reanudar, encuadrar y detener. |
/api/v1/machine | Conectar, desconectar, consultar el estado, mover por pasos y llevar al origen. |
/api/v1/camera | Dispositivos, estado, captura, superposición (visualización, transformación y renderizado), calibración y alineación. |
/api/v1/console | Enviar G-code sin procesar. Leer el registro reciente de la consola. |
/api/v1/macros | Enumerar, guardar y ejecutar macros del usuario. |
/api/v1/materials | Biblioteca de materiales: ajustes preestablecidos identificados por material y grosor. |
/api/v1/profiles | Perfiles de máquina: crear, enumerar y aplicar. |
/api/v1/assets | Acceso a los recursos de la Biblioteca de arte. |
/api/v1/vector | Operaciones vectoriales: convertir, booleanas, agrupar y rutas. |
/api/v1/events | Flujo WebSocket de cambios de estado y eventos de la máquina. |
Las páginas de referencia de cada recurso aún están en desarrollo; mientras tanto, consulta el esquema de capacidades del agente.
Descubre la interfaz activa
La forma más rápida de ver lo que expone tu versión instalada:
curl -s http://localhost:5900/api/v1/agent/capabilities | jq .Esto devuelve el esquema completo de capacidades, incluidos todos los endpoints, sus parámetros y la estructura de sus respuestas. El esquema es la descripción de referencia; esta página es una guía.
Para inspeccionar el estado:
curl -s http://localhost:5900/api/v1/agent/state | jq .Para obtener una guía escrita sobre cómo controlar la aplicación:
curl -s http://localhost:5900/api/v1/agent/guideControl de versiones
Todas las rutas están bajo /api/v1. Los cambios incompatibles se incorporarán a /api/v2 cuando ocurran. Los cambios aditivos (nuevos endpoints o campos opcionales) se publican en v1 sin aumentar la versión.
Relacionado
- Guía para usar la API HTTP: introducción estilo tutorial con ejemplos desarrollados.
- Cómo comparten el estado la CLI y la aplicación: el modelo de coherencia detrás de estos endpoints.
- Configuración → General: dónde activar la API y elegir el puerto.