Documentazione Beam Bench

API HTTP

Controlla Beam Bench da qualsiasi client HTTP. La stessa interfaccia usata dalla CLI.

L'API HTTP è l'interfaccia di integrazione per Beam Bench. L'app desktop, la CLI e qualsiasi client esterno comunicano tutti con gli stessi percorsi. Se hai un caso d'uso che richiede Beam Bench in un ambiente diverso dalla CLI (app web, server di integrazione, app mobile, i tuoi strumenti), usa direttamente l'API.

L'API viene distribuita con l'app desktop ed è eseguita nel processo. Non è necessario installare un servizio separato.

Impostazioni predefinite e sicurezza

Nella build corrente, il server API locale viene distribuito con queste impostazioni:

  • API locale: disattivata.
  • Porta API: 5900.
  • Consenti la connessione ai dispositivi di rete: disattivata. Quando l'API è abilitata, si associa a 127.0.0.1 e accetta connessioni solo da questo computer.

L'API non resta in ascolto per le connessioni finché non scegli di attivarla. L'abilitazione dell'accesso di rete richiede un consenso separato perché l'API non dispone di autenticazione e include operazioni che possono spostare la macchina e attivare il laser.

Per usare l'API, modifica le sue impostazioni da Impostazioni → Generali:

  1. Apri l'app desktop.
  2. Modifica → Impostazioni → Generali.
  3. Attiva API locale.
  4. Lascia disattivata Consenti la connessione ai dispositivi di rete, a meno che non debba connettersi un altro dispositivo attendibile.

Le modifiche hanno effetto immediato; non è necessario riavviare.

URL di base

http://<host>:5900/api/v1

<host> è localhost (oppure 127.0.0.1) quando Consenti la connessione ai dispositivi di rete è disattivata. Quando è attivata, il server è raggiungibile all'indirizzo IP LAN della macchina da qualsiasi dispositivo della rete.

La porta è configurabile in Impostazioni → Generali; 5900 è il valore predefinito.

Autenticazione

Nessuna. L'API non dispone di token, chiave o accesso.

  • Con l'associazione a localhost, il modello di accesso a livello di sistema operativo costituisce il confine: qualsiasi processo sulla tua macchina può comunicare con l'API.
  • Con l'associazione di rete abilitata, chiunque nella stessa rete può comunicare con l'API. Non usare la modalità di associazione di rete su una rete Wi-Fi non attendibile.

Formato delle richieste

Tutti i corpi POST/PATCH/PUT sono JSON:

Content-Type: application/json

Le stringhe di query sono coppie chiave=valore semplici. I segmenti di percorso sono codificati come URL secondo la consuetudine.

Involucro della risposta

Le risposte riuscite restituiscono direttamente il corpo della risorsa, senza involucro:

{
  "field": "value",
  "...": "..."
}

Gli errori restituiscono un involucro uniforme:

{
  "error": {
    "code": "InvalidInput",
    "message": "Human-readable summary of what went wrong.",
    "details": { "...optional structured context..." }
  }
}

error.code è uno dei seguenti:

CodiceHTTPSignificato
NotFound404La risorsa richiesta non esiste.
InvalidInput400Il corpo della richiesta o i parametri non erano validi oppure sono stati rifiutati.
InvalidState412L'app non si trova in uno stato in cui questa operazione è sensata (ad es. nessun progetto aperto).
Busy409È già in corso un'operazione in conflitto.
Conflict409Un altro autore ha modificato la risorsa dall'ultima lettura.
StaleRevision412Il tuo token di revisione è precedente a quello corrente. Rileggi e riprova.
MachineIo502La connessione alla macchina non è riuscita (disconnessione, timeout, errore di trasporto).
Persistence500La scrittura o la lettura dal disco non è riuscita.
Internal500Errore del server imprevisto. Segnalalo come bug.

Errori che richiedono conferma

Un piccolo insieme di operazioni può spostare la macchina o attivare il laser. Questi endpoint richiedono un flag di conferma esplicito nel corpo della richiesta. Se manca, l'API restituisce 428 Precondition Required:

{
  "error_code": "CONFIRMATION_REQUIRED",
  "missing": ["confirm_motion"],
  "message": "This command can move the machine and requires explicit confirmation."
}

Invia di nuovo la richiesta con il flag indicato impostato su true. I flag attualmente in uso sono confirm_motion, confirm_laser_on, confirm_raw_gcode e confirm_air_assist.

Gruppi di endpoint

PercorsoCosa include
/api/v1/appInformazioni a livello di app: versione, tempo di attività, funzionalità.
/api/v1/agentSchema delle capacità dell'agente, istantanea dello stato e guida operativa.
/api/v1/projectsApri, salva, chiudi. Livelli, oggetti, annulla/ripeti.
/api/v1/projects/importImporta SVG, DXF, PDF, AI e immagini raster in un progetto.
/api/v1/exportEsporta un progetto in SVG, DXF, PDF, EPS, AI.
/api/v1/designDescrivi il progetto corrente, esporta in PNG, applica modifiche transazionali.
/api/v1/previewGenera anteprime di taglio e statistiche.
/api/v1/jobsControllo preliminare, esegui, esecuzione a secco, pausa, riprendi, inquadra, arresta.
/api/v1/machineConnetti, disconnetti, stato, movimento manuale, homing.
/api/v1/cameraDispositivi, stato, acquisizione, sovrapposizione (visualizza, trasforma, renderizza), calibrazione, allineamento.
/api/v1/consoleInvia G-code non elaborato. Leggi il registro recente della console.
/api/v1/macrosElenca, salva ed esegui macro utente.
/api/v1/materialsLibreria materiali: preimpostazioni indicizzate per materiale e spessore.
/api/v1/profilesProfili macchina: crea, elenca, applica.
/api/v1/assetsAccesso alle risorse della Libreria grafica.
/api/v1/vectorOperazioni vettoriali: converti, booleane, raggruppa, tracciato.
/api/v1/eventsFlusso WebSocket di modifiche dello stato ed eventi della macchina.

Le pagine di riferimento per risorsa sono in corso di sviluppo; nel frattempo consulta lo schema delle capacità dell'agente.

Scopri l'interfaccia disponibile

Il modo più rapido per vedere cosa espone la versione installata:

curl -s http://localhost:5900/api/v1/agent/capabilities | jq .

Restituisce lo schema completo delle capacità, inclusi ogni endpoint, i relativi parametri e la forma della risposta. Lo schema è la descrizione autorevole; questa pagina è una guida.

Per l'ispezione dello stato:

curl -s http://localhost:5900/api/v1/agent/state | jq .

Per una guida scritta su come controllare l'app:

curl -s http://localhost:5900/api/v1/agent/guide

Versionamento

Tutti i percorsi sono sotto /api/v1. Le modifiche incompatibili saranno in /api/v2 quando verranno introdotte. Le modifiche additive (nuovi endpoint, nuovi campi facoltativi) vengono distribuite in v1 senza incremento di versione.

Correlati

On this page