HTTP-API
Bedien Beam Bench vanuit elke HTTP-client. Hetzelfde oppervlak als waar de CLI mee communiceert.
De HTTP-API is het integratieoppervlak voor Beam Bench. De desktopapp, de CLI en elke externe client communiceren met dezelfde routes. Als je Beam Bench wilt gebruiken in een omgeving zonder CLI (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.1en accepteert deze alleen verbindingen vanaf deze computer.
De API luistert pas naar verbindingen nadat je deze hebt ingeschakeld. Netwerktoegang inschakelen vereist een afzonderlijke bevestiging, omdat de API geen authenticatie gebruikt en bewerkingen bevat die de machine kunnen bewegen en de laser kunnen activeren.
Wijzig de instellingen vanuit Instellingen → Algemeen om de API te gebruiken:
- Open de desktopapp.
- Bewerken → Instellingen → Algemeen.
- Schakel Lokale API in.
- Laat Netwerkapparaten toestaan uit, tenzij een ander vertrouwd apparaat verbinding moet maken.
Wijzigingen worden onmiddellijk actief; opnieuw opstarten is niet nodig.
Basis-URL
http://<host>:5900/api/v1<host> is localhost (of 127.0.0.1) wanneer Netwerkapparaten toestaan uit staat. Wanneer deze optie aan staat, is de server vanaf elk apparaat op het netwerk bereikbaar via het LAN-IP-adres van de machine.
Je kunt de poort configureren via Instellingen → Algemeen; 5900 is de standaardwaarde.
Authenticatie
Geen. De API heeft geen token, sleutel of aanmelding.
- Bij een localhost-binding vormt het toegangsmodel op besturingssysteemniveau de grens: elk proces op je machine kan met de API communiceren.
- Bij ingeschakelde netwerkbinding kan iedereen op hetzelfde netwerk met de API communiceren. Gebruik de netwerkbindingsmodus niet op niet-vertrouwde wifi.
Aanvraagindeling
Alle POST/PATCH/PUT-inhoud is JSON:
Content-Type: application/jsonQuerytekenreeksen zijn platte key=value. Padsegmenten worden zoals gebruikelijk gecodeerd voor URL's.
Antwoordomhulling
Geslaagde antwoorden retourneren de resource-inhoud rechtstreeks, zonder omhulling:
{
"field": "value",
"...": "..."
}Fouten retourneren een uniforme omhulling:
{
"error": {
"code": "InvalidInput",
"message": "Human-readable summary of what went wrong.",
"details": { "...optional structured context..." }
}
}error.code is een van de volgende waarden:
| Programmacode | HTTP | Betekenis |
|---|---|---|
NotFound | 404 | De gevraagde resource bestaat niet. |
InvalidInput | 400 | De aanvraaginhoud of parameters waren ongeldig of zijn afgewezen. |
InvalidState | 412 | De app bevindt zich niet in een toestand waarin deze bewerking zinvol is (bijvoorbeeld: er is geen project geopend). |
Busy | 409 | Er wordt al een conflicterende bewerking uitgevoerd. |
Conflict | 409 | Een andere schrijver heeft de resource gewijzigd sinds je deze voor het laatst hebt gelezen. |
StaleRevision | 412 | Je revisietoken loopt achter op de huidige versie. Lees de resource opnieuw en probeer het nogmaals. |
MachineIo | 502 | De machineverbinding is mislukt (verbinding verbroken, time-out of transportfout). |
Persistence | 500 | Lezen van of schrijven naar schijf is mislukt. |
Internal | 500 | Onverwachte serverfout. Meld dit als bug. |
Fouten waarvoor bevestiging vereist is
Een klein aantal bewerkingen kan de machine bewegen of de laser activeren. Deze endpoints vereisen een expliciete bevestigingsvlag 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."
}Verstuur de aanvraag opnieuw met de genoemde vlag ingesteld op true. De momenteel gebruikte vlaggen zijn confirm_motion, confirm_laser_on, confirm_raw_gcode en confirm_air_assist.
Endpointgroepen
| Pad | Wat het omvat |
|---|---|
/api/v1/app | Informatie op appniveau: versie, uptime en mogelijkheden. |
/api/v1/agent | Schema met agentmogelijkheden, momentopname van de status en bedieningshandleiding. |
/api/v1/projects | Openen, opslaan en sluiten. Lagen, objecten en ongedaan maken/opnieuw uitvoeren. |
/api/v1/projects/import | SVG-, DXF-, PDF-, AI- en rasterafbeeldingen importeren in een project. |
/api/v1/export | Een project renderen naar SVG, DXF, PDF, EPS of AI. |
/api/v1/design | Het huidige ontwerp beschrijven, renderen naar PNG en transactionele bewerkingen toepassen. |
/api/v1/preview | Snijvoorbeelden en statistieken genereren. |
/api/v1/jobs | Preflight, uitvoeren, proefrun, pauzeren, hervatten, framen en stoppen. |
/api/v1/machine | Verbinden, verbreken, status, joggen en home. |
/api/v1/camera | Toepassingaraten, status, opname, overlay (weergave, transformatie, rendering), kalibratie en uitlijning. |
/api/v1/console | Ruwe G-code verzenden. Het recente consolelogboek lezen. |
/api/v1/macros | Gebruikersmacro's weergeven, opslaan en uitvoeren. |
/api/v1/materials | Materiaalbibliotheek: voorinstellingen op basis van materiaal en dikte. |
/api/v1/profiles | Lasermachineprofielen: maken, weergeven en toepassen. |
/api/v1/assets | Toegang tot Grafiekbibliotheek-assets. |
/api/v1/vector | Vectorafbeeldingbewerkingen: converteren, booleanbewerkingen, groeperen en paden. |
/api/v1/events | WebSocket-stream met statuswijzigingen en machinegebeurtenissen. |
Referentiepagina's per resource zijn nog in ontwikkeling; raadpleeg voorlopig het schema met agentmogelijkheden.
Het actieve oppervlak ontdekken
De snelste manier om te zien wat je geïnstalleerde versie beschikbaar stelt:
curl -s http://localhost:5900/api/v1/agent/capabilities | jq .Dit retourneert het volledige schema met mogelijkheden, inclusief elk endpoint, de parameters ervan en de antwoordvorm. Het schema is de gezaghebbende beschrijving; deze pagina is een handleiding daarbij.
Voor statusinspectie:
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/guideVersiebeheer
Alle routes vallen onder /api/v1. Wanneer er breaking changes optreden, komen deze in /api/v2. Aanvullende wijzigingen (nieuwe endpoints en nieuwe optionele velden) worden in v1 uitgebracht zonder verhoging van het versienummer.
Gerelateerd
- Handleiding voor het gebruik van de HTTP-API: een introductie in tutorialstijl met uitgewerkte voorbeelden.
- Hoe de CLI en de app status delen: het consistentiemodel achter deze endpoints.
- Instellingen → Algemeen: waar je de API inschakelt en de poort kiest.