HTTP-API
Styr Beam Bench fra en hvilken som helst HTTP-klient. Samme grensesnitt som CLI bruker.
HTTP-API-et er integrasjonsgrensesnittet for Beam Bench. De fleste CLI-kommandoer og eksterne klienter bruker disse rutene. Skrivebordsfrontend-en kaller den delte tjenesten gjennom Tauri IPC og trenger ikke HTTP-serveren ved normal bruk. Hvis du har et bruksområde som trenger Beam Bench i et miljø uten CLI, for eksempel en webapp, integrasjonsserver, mobilapp eller egne verktøy, kan du bruke API-et direkte.
API-et leveres med skrivebordsappen og kjører i samme prosess. Det finnes ingen separat tjeneste som må installeres.
Standardverdier og sikkerhet
I den gjeldende versjonen leveres den lokale API-serveren med disse innstillingene:
- Lokalt API: av.
- API-port: 5900.
- Tillat at enheter i nettverket kobler til: av. Når API-et er aktivert, bindes det til
127.0.0.1og godtar bare tilkoblinger fra denne datamaskinen.
API-et lytter ikke etter tilkoblinger før du aktivt velger det. Nettverkstilgang krever et separat aktivt valg fordi API-et ikke har autentisering og inneholder operasjoner som kan flytte maskinen og aktivere laseren.
For å bruke API-et endrer du innstillingene under Innstillinger → Generelt:
- Åpne skrivebordsappen.
- Rediger → Innstillinger → Generelt.
- Slå på Lokalt API.
- La Tillat at enheter i nettverket kobler til være av med mindre en annen klarert enhet må koble til.
Endringene gjelder umiddelbart. Omstart er ikke nødvendig.
Basisadresse
http://<host>:5900/api/v1<host> er localhost (eller 127.0.0.1) når Tillat at enheter i nettverket kobler til er av. Når den er på, er serveren tilgjengelig på maskinens LAN-IP fra alle enheter i nettverket.
Porten kan konfigureres under Innstillinger → Generelt. 5900 er standardverdien.
Autentisering
Ingen. API-et har ingen token, nøkkel eller innlogging.
- Med localhost-binding er tilgangsmodellen på operativsystemnivå grensen: enhver prosess på maskinen kan snakke med API-et.
- Når nettverksbinding er aktivert, kan alle på samme nettverk snakke med API-et. Ikke bruk nettverksbindingsmodus på et uklarert Wi-Fi-nettverk.
Forespørselsformat
Alle POST/PATCH/PUT-organer er JSON:
Content-Type: application/jsonSpørringsstrenger er flate key=value. Banelementer URL-kodes som vanlig.
Svarinnpakning
Vellykkede svar returnerer ressursens innhold direkte, uten innpakning:
{
"field": "value",
"...": "..."
}Feil returnerer en ensartet innpakning:
{
"error": {
"code": "invalid_input",
"message": "Human-readable summary of what went wrong.",
"details": { "...optional structured context..." }
}
}error.code er én av disse:
| Code | HTTP | Betydning |
|---|---|---|
not_found | 404 | Den forespurte ressursen finnes ikke. |
invalid_input | 400 | Forespørselsorganet eller parameterne hadde feil format eller ble avvist. |
invalid_state | 412 | Appen er ikke i en tilstand der denne operasjonen gir mening, for eksempel fordi ingen prosjekt er åpent. |
busy | 409 | En motstridende operasjon pågår allerede. |
conflict | 409 | En annen skriver endret ressursen siden du sist leste den. |
stale_revision | 412 | Revisjonstokenet ditt ligger etter det gjeldende tokenet. Les på nytt og prøv igjen. |
machine_io | 502 | Maskintilkoblingen mislyktes, for eksempel ved frakobling, tidsavbrudd eller transportfeil. |
persistence | 500 | Skriving eller lesing av disk mislyktes. |
internal | 500 | Uventet serverfeil. Rapporter den som en feil. |
Feil som krever bekreftelse
Et lite antall operasjoner kan flytte maskinen eller aktivere laseren. Disse endepunktene krever et uttrykkelig bekreftelsesflagg i forespørselsorganet. Hvis det 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 forespørselen på nytt med det navngitte flagget satt til true. Flaggene som brukes nå, er confirm_motion, confirm_laser_on, confirm_raw_gcode og confirm_air_assist.
Samtidige prosjektendringer
Designtransaksjoner sammenligner prosjektet de tok et øyeblikksbilde av, når endringene bekreftes. En samtidig endring, et prosjektskifte eller en lukking kan returnere stale_revision. Oppdater tilstanden og vurder endringen på nytt før du prøver igjen. Ikke spill blindt av et eldre prosjektøyeblikksbilde over nyere arbeid.
Endepunktgrupper
| Bane | Hva den dekker |
|---|---|
/api/v1/app | Appinformasjon på overordnet nivå: versjon, oppetid og funksjoner. |
/api/v1/agent | Skjema for agentfunksjoner, øyeblikksbilde av tilstand og betjeningsveiledning. |
/api/v1/projects | Åpne, lagre og lukke. Lag, objekter, angre/gjør om. |
/api/v1/projects/import | Importer LightBurn-, SVG-, DXF-, PDF-, AI-, EPS- og rasterfiler. En egen rute håndterer begrenset import av G-code-geometri. |
/api/v1/export | Gjengi et prosjekt til SVG, DXF, PDF, EPS eller AI. |
/api/v1/design | Beskriv det gjeldende designet, gjengi til PNG og bruk transaksjonelle endringer. |
/api/v1/preview | Generer forhåndsvisninger og statistikk for kutt. |
/api/v1/jobs | Forhåndskontroll, kjøring, tørrkjøring, pause, fortsett, innramming og stopp. |
/api/v1/machine | Koble til, koble fra, vis status, kjør trinnvis og kjør hjem. |
/api/v1/camera | Enheter, tilstand, opptak, overlegg, visning, transformasjon, gjengivelse, kalibrering og justering. |
/api/v1/console | Send rå G-code. Les nylig konsolllogg. |
/api/v1/macros | List opp, lagre og kjør brukermakroer. |
/api/v1/materials | Materialbibliotek: forhåndsinnstillinger etter materiale og tykkelse. |
/api/v1/profiles | Maskinprofiler: opprett, list opp og bruk. |
/api/v1/assets | Tilgang til ressurser i Grafikkbibliotek. |
/api/v1/vector | Vektoroperasjoner: konverter, boolsk operasjon, grupper og bane. |
/api/v1/events | WebSocket-strøm med tilstandsendringer og maskinhendelser. |
Referansesider for hver ressurs er under utvikling. Se kapabilitetsskjemaet for agenten i mellomtiden.
Finn det aktive grensesnittet
Den raskeste måten å se hva den installerte versjonen din tilbyr på:
curl -s http://localhost:5900/api/v1/agent/capabilities | jq .Dette returnerer hele kapabilitetsskjemaet, inkludert alle endepunkter, parameterne deres og formen på svarene. Skjemaet er den autoritative beskrivelsen. Denne siden er en veiledning til det.
For introspeksjon av tilstanden:
curl -s http://localhost:5900/api/v1/agent/state | jq .For en skriftlig innføring i hvordan du styrer appen:
curl -s http://localhost:5900/api/v1/agent/guideVersjonering
Alle ruter ligger under /api/v1. Brytende endringer legges i /api/v2 når de oppstår. Tilleggsendringer, som nye endepunkter og nye valgfrie felt, leveres i v1 uten at versjonen økes.
Relatert
- Veiledning for bruk av HTTP-API-et: en innføring i veiledningsform med gjennomarbeidede eksempler.
- Slik deler CLI og app tilstand: konsistensmodellen bak disse endepunktene.
- Innstillinger → Generelt: her aktiverer du API-et og velger port.