Beam Bench-documentatie

HTTP API

Bestuur Beam Bench vanuit elke HTTP-client. Hetzelfde oppervlak waar de CLI mee communiceert.

De HTTP API is het integratieoppervlak voor Beam Bench. De meeste CLI-opdrachten en externe clients gebruiken deze routes. De desktopfrontend roept de gedeelde service aan via Tauri IPC en heeft de HTTP-server bij normaal gebruik niet nodig. Als je Beam Bench wilt gebruiken in een omgeving zonder CLI, zoals een webapp, integratieserver, mobiele app of eigen tooling, gebruik je de API rechtstreeks.

De API wordt meegeleverd met de desktopapp en draait in-process. Je hoeft geen afzonderlijke service te installeren.

Standaardwaarden en beveiliging

In de huidige build wordt de lokale API-server geleverd met deze instellingen:

  • Lokale API: uit.
  • API-poort: 5900.
  • Netwerkapparaten toestaan: uit. Wanneer de API is ingeschakeld, bindt deze aan 127.0.0.1 en accepteert de server alleen verbindingen vanaf deze computer.

De API luistert pas naar verbindingen nadat je dit hebt ingeschakeld. Netwerktoegang inschakelen is een afzonderlijke opt-in, omdat de API geen authenticatie gebruikt en bewerkingen bevat waarmee je de machine kunt bewegen en de laser kunt inschakelen.

Als je de API wilt gebruiken, wijzig je de instellingen via Instellingen → Algemeen:

  1. Open de desktopapp.
  2. Bewerken → Instellingen → Algemeen.
  3. Schakel Lokale API in.
  4. Laat Netwerkapparaten toestaan uit, tenzij een ander vertrouwd apparaat verbinding moet maken.

Wijzigingen worden onmiddellijk toegepast; opnieuw opstarten is niet nodig.

Basis-URL

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

<host> is localhost (of 127.0.0.1) wanneer Netwerkapparaten toestaan uitstaat. Wanneer deze optie aanstaat, is de server bereikbaar op het LAN-IP-adres van de machine vanaf elk apparaat op het netwerk.

De poort kan worden geconfigureerd via Instellingen → Algemeen; 5900 is de standaardwaarde.

Authenticatie

Geen. De API heeft geen token, sleutel of aanmelding.

  • Bij binding aan localhost vormt het toegangsmodel op besturingssysteemniveau de grens: elk proces op je machine kan met de API communiceren.
  • Als netwerkbinding is ingeschakeld, kan iedereen op hetzelfde netwerk met de API communiceren. Gebruik de modus met netwerkbinding niet op niet-vertrouwde wifi.

Aanvraagindeling

Alle POST/PATCH/PUT-hoofdinvoeren zijn JSON:

Content-Type: application/json

Querystrings zijn vlakke key=value-paren. Padsegmenten worden zoals gebruikelijk URL-gecodeerd.

Antwoordomhulsel

Geslaagde antwoorden retourneren de resource-inhoud rechtstreeks, zonder omhulsel:

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

Fouten retourneren een uniform omhulsel:

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

error.code is een van de volgende waarden:

CodeHTTPBetekenis
not_found404De gevraagde resource bestaat niet.
invalid_input400De aanvraaginhoud of parameters waren ongeldig of zijn afgewezen.
invalid_state412De app bevindt zich niet in een toestand waarin deze bewerking zinvol is, bijvoorbeeld wanneer er geen project is geopend.
busy409Er wordt al een conflicterende bewerking uitgevoerd.
conflict409Een andere schrijver heeft de resource gewijzigd sinds je deze voor het laatst hebt gelezen.
stale_revision412Je revisietoken loopt achter op de huidige revisie. Lees de gegevens opnieuw en probeer het nogmaals.
machine_io502De machineverbinding is mislukt, bijvoorbeeld door een verbroken verbinding, time-out of transportfout.
persistence500Het lezen van of schrijven naar de schijf is mislukt.
internal500Onverwachte serverfout. Meld dit als bug.

Fouten waarvoor bevestiging nodig is

Een kleine groep bewerkingen kan de machine bewegen of de laser inschakelen. Voor deze eindpunten is een expliciete bevestigingsvlag vereist in de aanvraaginhoud. Als die ontbreekt, retourneert de API 428 Precondition Required:

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

Stuur de aanvraag opnieuw met de genoemde vlag ingesteld op true. De vlaggen die momenteel worden gebruikt zijn confirm_motion, confirm_laser_on, confirm_raw_gcode en confirm_air_assist.

Gelijktijdige projectbewerkingen

Ontwerptransacties vergelijken het vastgelegde project op het moment van vastleggen. Een gelijktijdige bewerking, projectwissel of sluiting kan stale_revision retourneren. Vernieuw de status en beoordeel de wijziging opnieuw voordat je het opnieuw probeert. Speel niet blindelings een oudere projectsnapshot af over nieuwer werk.

Groepen met eindpunten

PadBetreft
/api/v1/appInformatie op appniveau: versie, uptime en mogelijkheden.
/api/v1/agentSchema voor agentmogelijkheden, statussnapshot en bedieningsgids.
/api/v1/projectsOpenen, opslaan en sluiten. Lagen, objecten, ongedaan maken en opnieuw uitvoeren.
/api/v1/projects/importLightBurn-, SVG-, DXF-, PDF-, AI-, EPS- en rasterbestanden importeren. Een afzonderlijke route verwerkt beperkte geometrie-import van G-code.
/api/v1/exportEen project renderen naar SVG, DXF, PDF, EPS en AI.
/api/v1/designHet huidige ontwerp beschrijven, renderen naar PNG en transactionele bewerkingen toepassen.
/api/v1/previewSnijvoorbeelden en statistieken genereren.
/api/v1/jobsPreflight, uitvoeren, dry-run, pauzeren, hervatten, framen en stoppen.
/api/v1/machineVerbinden, verbinding verbreken, status, joggen en homen.
/api/v1/cameraApparaten, status, vastleggen, overlay, inclusief weergave, transformatie en rendering, kalibratie en uitlijning.
/api/v1/consoleRuwe G-code verzenden. Het recente consolelog lezen.
/api/v1/macrosGebruikersmacro's weergeven, opslaan en uitvoeren.
/api/v1/materialsMateriaalbibliotheek: presets op basis van materiaal en dikte.
/api/v1/profilesMachineprofielen: maken, weergeven en toepassen.
/api/v1/assetsToegang tot items in de Grafiekbibliotheek.
/api/v1/vectorVectorbewerkingen: converteren, boolean, groeperen en paden.
/api/v1/eventsWebSocket-stream van statuswijzigingen en machinegebeurtenissen.

Referentiepagina's per resource zijn nog in ontwikkeling. Raadpleeg intussen het schema voor agentmogelijkheden.

Het actieve oppervlak ontdekken

De snelste manier om te zien wat je geïnstalleerde versie beschikbaar maakt:

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

Dit retourneert het volledige schema met mogelijkheden, waaronder elk eindpunt, de parameters en de antwoordstructuur. Het schema is de gezaghebbende beschrijving; deze pagina is een gids daarbij.

Voor statusinzage:

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

Voor een schriftelijke uitleg over het bedienen van de app:

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

Versiebeheer

Alle routes vallen onder /api/v1. Bij niet-compatibele wijzigingen wordt /api/v2 gebruikt. Aanvullende wijzigingen, zoals nieuwe eindpunten en nieuwe optionele velden, worden in v1 geleverd zonder versienummerverhoging.

Gerelateerd

On this page