Beam Bench-dokumentation

HTTP API

Styr Beam Bench fra enhver HTTP-klient. Samme grænseflade som CLI'en bruger.

HTTP-API'et er integrationsgrænsefladen til Beam Bench. Desktopappen, CLI'en og alle eksterne klienter kommunikerer med de samme ruter. Hvis du har et anvendelsesområde, der kræver Beam Bench i et miljø uden CLI (webapp, integrationsserver, mobilapp, dine egne værktøjer), skal du bruge API'et direkte.

API'et leveres sammen med desktopappen og kører i processen. Der er ingen separat tjeneste, der skal installeres.

Standardindstillinger og sikkerhed

I den aktuelle version leveres den lokale API-server med disse indstillinger:

  • Lokal API: deaktiveret.
  • API-port: 5900.
  • Tillad netværksenheder: deaktiveret. Når API'et er aktiveret, binder det sig til 127.0.0.1 og accepterer kun forbindelser fra denne computer.

API'et lytter ikke efter forbindelser, før du aktivt vælger det. Aktivering af netværksadgang kræver et separat aktivt valg, fordi API'et ikke har godkendelse og indeholder handlinger, der kan flytte maskinen og aktivere laseren.

Hvis du vil bruge API'et, skal du ændre indstillingerne fra Indstillinger → Generelt:

  1. Åbn desktopappen.
  2. Rediger → Indstillinger → Generelt.
  3. Slå Lokal API til.
  4. Lad Tillad netværksenheder være deaktiveret, medmindre en anden betroet enhed skal oprette forbindelse.

Ændringerne træder i kraft med det samme, der kræves ingen genstart.

Basis-URL

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

<host> er localhost (eller 127.0.0.1), når Tillad netværksenheder er deaktiveret. Når den er aktiveret, kan serveren nås på maskinens LAN-IP fra enhver enhed på netværket.

Porten kan konfigureres under Indstillinger → Generelt, 5900 er standardindstillingen.

Godkendelse

Ingen. API'et har intet token, ingen nøgle og intet login.

  • Ved binding til localhost er adgangen på operativsystemniveau grænsen: Alle processer på din computer kan kommunikere med API'et.
  • Når netværksbinding er aktiveret, kan alle på det samme netværk kommunikere med API'et. Brug ikke netværksbinding på et netværk med ikke-betroet Wi-Fi.

Anmodningsformat

Alle POST/PATCH/PUT-legemer er JSON:

Content-Type: application/json

Forespørgselsstrenge er flade key=value. Stisegmenter URL-kodes som normalt.

Svarindpakning

Vellykkede svar returnerer ressourcelegemet direkte uden indpakning:

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

Fejl returnerer en ensartet indpakning:

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

error.code er en af følgende:

KodeHTTPBetydning
NotFound404Den ønskede ressource findes ikke.
InvalidInput400Anmodningslegemet eller parametrene var ugyldige eller blev afvist.
InvalidState412Appen er ikke i en tilstand, hvor denne handling giver mening (f.eks. intet projekt er åbent).
Busy409En modstridende handling er allerede i gang.
Conflict409En anden skriver har ændret ressourcen, siden du sidst læste den.
StaleRevision412Dit revisionstoken er bagud i forhold til det aktuelle. Læs igen, og prøv på ny.
MachineIo502Forbindelsen til maskinen mislykkedes (afbrydelse, timeout eller transportfejl).
Persistence500Skrivning eller læsning af disken mislykkedes.
Internal500Uventet serverfejl. Rapportér den som en fejl.

Fejl, der kræver bekræftelse

En mindre gruppe handlinger kan flytte maskinen eller aktivere laseren. Disse endepunkter kræver et eksplicit bekræftelsesflag i anmodningslegemet. Hvis flaget mangler, returnerer API'et 428 Precondition Required:

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

Send anmodningen igen med det angivne flag sat til true. De flag, der aktuelt bruges, er confirm_motion, confirm_laser_on, confirm_raw_gcode og confirm_air_assist.

Endepunktgrupper

StiDækker
/api/v1/appAppoplysninger på overordnet niveau: version, oppetid og funktioner.
/api/v1/agentSkema for agentfunktioner, tilstandsøjebliksbillede og betjeningsvejledning.
/api/v1/projectsÅbn, gem og luk. Lag, objekter samt fortryd/gentag.
/api/v1/projects/importImportér SVG, DXF, PDF, AI og rasterbilleder til et projekt.
/api/v1/exportGengiv et projekt til SVG, DXF, PDF, EPS eller AI.
/api/v1/designBeskriv det aktuelle design, gengiv til PNG, og anvend transaktionsbaserede redigeringer.
/api/v1/previewGenerér skæreforhåndsvisninger og statistik.
/api/v1/jobsForberedelseskontrol, kørsel, prøvekørsel, pause, genoptag, kør ramme, stop.
/api/v1/machineOpret forbindelse, afbryd forbindelse, status, jog og kør til udgangspunkt.
/api/v1/cameraEnheder, tilstand, optagelse, overlejring (visning, transformation og gengivelse), kalibrering og justering.
/api/v1/consoleSend rå G-code. Læs den seneste konsollog.
/api/v1/macrosVis, gem og kør brugermakroer.
/api/v1/materialsMaterialebibliotek: forudindstillinger efter materiale og tykkelse.
/api/v1/profilesMaskinprofiler: opret, vis og anvend.
/api/v1/assetsAdgang til aktiver i Kunstbibliotek.
/api/v1/vectorVektorhandlinger: konvertér, udfør booleske operationer, gruppér og opret kurver.
/api/v1/eventsWebSocket-strøm med tilstandsændringer og maskinhændelser.

Referencessider for de enkelte ressourcer er under udarbejdelse. Se i mellemtiden skemaet for agentfunktioner.

Se den aktuelle grænseflade

Den hurtigste måde at se, hvad din installerede version stiller til rådighed, er:

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

Dette returnerer hele skemaet for funktionerne, herunder alle endepunkter, deres parametre og formen på deres svar. Skemaet er den autoritative beskrivelse, denne side er en vejledning til det.

Hvis du vil se tilstanden:

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

Hvis du vil have en skriftlig introduktion til, hvordan appen styres:

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

Versionering

Alle ruter ligger under /api/v1. Breaking changes placeres i /api/v2, når de opstår. Tilføjelser (nye endepunkter og nye valgfrie felter) leveres i v1 uden ændring af versionsnummeret.

Relateret

On this page