HTTP API
Upravljajte Beam Benchom iz katerega koli odjemalca HTTP. Isti vmesnik uporablja CLI.
API HTTP je integracijski vmesnik za Beam Bench. Večina ukazov CLI in zunanji odjemalci uporablja te poti. Namizni vmesnik kliče skupno storitev prek Tauri IPC in za običajno uporabo ne potrebuje strežnika HTTP. Če želite Beam Bench uporabljati v okolju, ki ni CLI, na primer v spletni aplikaciji, integracijskem strežniku, mobilni aplikaciji ali lastnem orodju, uporabite API neposredno.
API je priložen namizni aplikaciji in se izvaja znotraj procesa. Ločene storitve ni treba namestiti.
Privzete nastavitve in varnost
V trenutni gradnji so lokalne nastavitve API-ja naslednje:
- Lokalni API: izklopljen.
- Vrata API: 5900.
- Dovolite omrežnim napravam povezavo: izklopljeno. Ko je API omogočen, se poveže z
127.0.0.1in sprejema povezave samo iz tega računalnika.
API ne posluša povezav, dokler ga izrecno ne omogočite. Omogočanje omrežnega dostopa je ločena izrecna možnost, ker API nima preverjanja pristnosti in vključuje operacije, ki lahko premaknejo napravo in sprožijo laser.
Če želite uporabljati API, spremenite njegove nastavitve v Nastavitve → Splošno:
- Odprite namizno aplikacijo.
- Uredi → Nastavitve → Splošno.
- Vklopite Lokalni API.
- Dovolite omrežnim napravam povezavo pustite izklopljeno, razen če se mora povezati druga zaupanja vredna naprava.
Spremembe začnejo veljati takoj, ponovni zagon ni potreben.
Osnovni URL
http://<host>:5900/api/v1<host> je localhost oziroma 127.0.0.1, ko je možnost Dovolite omrežnim napravam povezavo izklopljena. Ko je vklopljena, je strežnik iz katere koli naprave v omrežju dosegljiv prek naslova LAN IP tega računalnika.
Vrata lahko nastavite v Nastavitve → Splošno, privzeta vrednost je 5900.
Preverjanje pristnosti
Brez preverjanja pristnosti. API nima žetona, ključa ali prijave.
- Pri povezavi z localhostom je meja model dostopa na ravni operacijskega sistema, zato lahko z API-jem komunicira vsak proces v vašem računalniku.
- Pri omogočeni omrežni povezavi lahko z API-jem komunicira kdor koli v istem omrežju. Na nezaupanja vrednem omrežju Wi-Fi ne uporabljajte načina z omrežno povezavo.
Oblika zahtev
Vsa telesa zahtev POST/PATCH/PUT so JSON:
Content-Type: application/jsonPoizvedbeni nizi so ravni pari ključ=vrednost. Odseki poti so kodirani kot URL po običajnih pravilih.
Ovojnica odgovora
Uspešni odgovori vrnejo telo vira neposredno, brez ovojnice:
{
"field": "value",
"...": "..."
}Napake vrnejo enotno ovojnico:
{
"error": {
"code": "invalid_input",
"message": "Human-readable summary of what went wrong.",
"details": { "...optional structured context..." }
}
}error.code je ena od teh vrednosti:
| Koda | HTTP | Pomen |
|---|---|---|
not_found | 404 | Zahtevani vir ne obstaja. |
invalid_input | 400 | Telo zahteve ali parametri so bili napačni ali zavrnjeni. |
invalid_state | 412 | Aplikacija ni v stanju, v katerem bi bila ta operacija smiselna, na primer odprt ni noben projekt. |
busy | 409 | Nasprotujoča si operacija že poteka. |
conflict | 409 | Drug zapisovalec je spremenil vir, odkar ste ga nazadnje prebrali. |
stale_revision | 412 | Vaš žeton revizije zaostaja za trenutnim. Znova preberite podatke in poskusite. |
machine_io | 502 | Povezava z napravo ni uspela, na primer zaradi prekinitve, časovne omejitve ali napake pri prenosu. |
persistence | 500 | Branje ali zapis na disk ni uspel. |
internal | 500 | Nepričakovana napaka strežnika. Prijavite jo kot napako. |
Napake, ki zahtevajo potrditev
Majhen nabor operacij lahko premakne napravo ali sproži laser. Te končne točke zahtevajo izrecno zastavico za potrditev v telesu zahteve. Če manjka, API vrne 428 Precondition Required:
{
"error_code": "CONFIRMATION_REQUIRED",
"missing": ["confirm_motion"],
"message": "This command can move the machine and requires explicit confirmation."
}Zahtevo pošljite znova z imenovano zastavico, nastavljeno na true. Trenutno se uporabljajo zastavice confirm_motion, confirm_laser_on, confirm_raw_gcode in confirm_air_assist.
Sočasno urejanje projektov
Transakcije oblikovanja primerjajo zajeti projekt ob potrditvi. Sočasno urejanje, preklop projekta ali zapiranje lahko vrne stale_revision. Osvežite stanje in pred ponovnim poskusom znova ocenite spremembo. Starega posnetka projekta ne predvajajte slepo čez novejše delo.
Skupine končnih točk
| Pot | Kaj zajema |
|---|---|
/api/v1/app | Podatki na ravni aplikacije: različica, čas delovanja, zmožnosti. |
/api/v1/agent | Shema zmožnosti agenta, posnetek stanja in navodila za delovanje. |
/api/v1/projects | Odpiranje, shranjevanje, zapiranje. Plasti, predmeti, razveljavljanje in uveljavljanje. |
/api/v1/projects/import | Uvoz datotek LightBurn, SVG, DXF, PDF, AI, EPS in rastrskih datotek. Ločena pot obravnava omejeni uvoz geometrije G-code. |
/api/v1/export | Izris projekta v SVG, DXF, PDF, EPS in AI. |
/api/v1/design | Opis trenutnega oblikovanja, izris v PNG in transakcijsko uveljavljanje sprememb. |
/api/v1/preview | Ustvarjanje predogledov rezanja in statistike. |
/api/v1/jobs | Predhodno preverjanje, zagon, poskusni zagon brez delovanja, začasna ustavitev, nadaljevanje, okvirjanje in ustavitev. |
/api/v1/machine | Povezava, prekinitev povezave, stanje, premik in vračanje v izhodišče. |
/api/v1/camera | Naprave, stanje, zajem, prekrivanje (prikaz, pretvorba, izris), umerjanje in poravnava. |
/api/v1/console | Pošiljanje surovega G-code. Branje nedavnega dnevnika konzole. |
/api/v1/macros | Izpis, shranjevanje in zagon uporabniških makrov. |
/api/v1/materials | Knjižnica materialov: prednastavitve, določene z materialom in debelino. |
/api/v1/profiles | Profili naprav: ustvarjanje, izpis in uporaba. |
/api/v1/assets | Dostop do elementov Knjižnice grafik. |
/api/v1/vector | Vektorske operacije: pretvarjanje, Boolove operacije, združevanje in poti. |
/api/v1/events | Tok sprememb stanja in dogodkov naprave prek WebSocket. |
Referenčne strani za posamezne vire so še v pripravi, zato si medtem oglejte shemo zmožnosti agenta.
Odkrijte dejanski vmesnik
Najhitreje preverite, kaj omogoča nameščena različica:
curl -s http://localhost:5900/api/v1/agent/capabilities | jq .To vrne celotno shemo zmožnosti, vključno z vsako končno točko, njenimi parametri in obliko odgovora. Shema je merodajen opis, ta stran pa je njen vodnik.
Za vpogled v stanje:
curl -s http://localhost:5900/api/v1/agent/state | jq .Za pisna navodila o upravljanju aplikacije:
curl -s http://localhost:5900/api/v1/agent/guideRazličice
Vse poti so pod /api/v1. Prelomne spremembe bodo uvedene v /api/v2, ko se pojavijo. Dopolnilne spremembe, na primer nove končne točke in nova neobvezna polja, so izdane v v1 brez spremembe različice.
Povezano
- Vodnik za uporabo API-ja HTTP: uvod v obliki vadnice s praktičnimi primeri.
- Kako si CLI in aplikacija delita stanje: model doslednosti za temi končnimi točkami.
- Nastavitve → Splošno: mesto, kjer omogočite API in izberete vrata.