HTTP API
Ovládejte Beam Bench z libovolného HTTP klienta. Stejné rozhraní, se kterým komunikuje CLI.
HTTP API je integrační rozhraní pro Beam Bench. Desktopová aplikace, CLI i libovolný externí klient komunikují se stejnými cestami. Pokud potřebujete Beam Bench používat v prostředí mimo CLI (webová aplikace, integrační server, mobilní aplikace nebo vlastní nástroje), použijte přímo API.
API je dodáváno s desktopovou aplikací a běží v rámci jejího procesu. Není třeba instalovat samostatnou službu.
Výchozí nastavení a zabezpečení
V aktuálním sestavení je místní API server dodáván s tímto nastavením:
- Místní API: vypnuto.
- Port API: 5900.
- Povolit zařízení v síti: vypnuto. Když je API povoleno, naslouchá na
127.0.0.1a přijímá připojení pouze z tohoto počítače.
API nenaslouchá připojením, dokud jeho použití nepovolíte. Povolení síťového přístupu vyžaduje samostatné potvrzení, protože API nevyžaduje ověření a obsahuje operace, které mohou pohybovat strojem a spustit laser.
Chcete-li API používat, změňte jeho nastavení v části Nastavení → Obecné:
- Otevřete desktopovou aplikaci.
- Úpravy → Nastavení → Obecné.
- Zapněte Místní API.
- Povolit zařízení v síti ponechte vypnuté, pokud se nemusí připojit jiné důvěryhodné zařízení.
Změny se projeví okamžitě; restart není potřeba.
Základní URL
http://<host>:5900/api/v1<host> je localhost (nebo 127.0.0.1), pokud je Povolit zařízení v síti vypnuté. Když je zapnuté, server je dostupný na LAN IP adrese počítače z libovolného zařízení v síti.
Portu lze nastavit v části Nastavení → Obecné; výchozí hodnota je 5900.
Ověřování
Žádné. API nemá token, klíč ani přihlášení.
- Při vazbě na localhost je hranicí přístupu model přístupu na úrovni operačního systému: s API může komunikovat libovolný proces na vašem počítači.
- Při povolené síťové vazbě může s API komunikovat kdokoli ve stejné síti. Režim síťové vazby nepoužívejte v nedůvěryhodných sítích Wi-Fi.
Formát požadavku
Těla všech požadavků POST/PATCH/PUT jsou ve formátu JSON:
Content-Type: application/jsonŘetězce dotazu mají plochý formát key=value. Segmenty cesty se kódují jako obvykle v URL.
Obálka odpovědi
Úspěšné odpovědi vracejí přímo tělo zdroje bez obálky:
{
"field": "value",
"...": "..."
}Chyby vracejí jednotnou obálku:
{
"error": {
"code": "InvalidInput",
"message": "Human-readable summary of what went wrong.",
"details": { "...optional structured context..." }
}
}error.code je jedna z těchto hodnot:
| Kód | HTTP | Význam |
|---|---|---|
NotFound | 404 | Požadovaný zdroj neexistuje. |
InvalidInput | 400 | Tělo požadavku nebo parametry mají nesprávný formát či byly odmítnuty. |
InvalidState | 412 | Aplikace není ve stavu, ve kterém tato operace dává smysl (např. není otevřený žádný projekt). |
Busy | 409 | Již probíhá konfliktní operace. |
Conflict | 409 | Jiný zapisující proces změnil zdroj od vašeho posledního načtení. |
StaleRevision | 412 | Váš revizní token je pozadu za aktuálním tokenem. Načtěte údaje znovu a opakujte požadavek. |
MachineIo | 502 | Připojení ke stroji selhalo (odpojení, vypršení časového limitu, chyba přenosu). |
Persistence | 500 | Zápis na disk nebo čtení z disku selhalo. |
Internal | 500 | Neočekávaná chyba serveru. Nahlaste ji jako chybu. |
Chyby vyžadující potvrzení
Malá skupina operací může pohybovat strojem nebo spustit laser. Tyto koncové body vyžadují v těle požadavku explicitní příznak potvrzení. Pokud chybí, API vrátí 428 Precondition Required:
{
"error_code": "CONFIRMATION_REQUIRED",
"missing": ["confirm_motion"],
"message": "This command can move the machine and requires explicit confirmation."
}Odešlete požadavek znovu s pojmenovaným příznakem nastaveným na true. Aktuálně se používají příznaky confirm_motion, confirm_laser_on, confirm_raw_gcode a confirm_air_assist.
Skupiny koncových bodů
| Cesta | Co zahrnuje |
|---|---|
/api/v1/app | Informace na úrovni aplikace: verze, doba běhu, možnosti. |
/api/v1/agent | Schéma možností agenta, snímek stavu a provozní příručka. |
/api/v1/projects | Otevření, uložení a zavření. Vrstvy, objekty, zpět/opakovat. |
/api/v1/projects/import | Importuj SVG, DXF, PDF, AI a rastrových obrázků do projektu. |
/api/v1/export | Vykreslení projektu do SVG, DXF, PDF, EPS, AI. |
/api/v1/design | Popis aktuálního návrhu, vykreslení do PNG, použití transakčních úprav. |
/api/v1/preview | Generování náhledů řezání a statistik. |
/api/v1/jobs | Kontrola před spuštěním, spuštění, zkušební běh, pozastavení, pokračování, ohraničení, zastavení. |
/api/v1/machine | Připojení, odpojení, stav, krokování, najetí do výchozí polohy. |
/api/v1/camera | Zařízení, stav, snímání, překryv (zobrazení, transformace, vykreslení), kalibrace, zarovnání. |
/api/v1/console | Odesílání nezpracovaného G-code. Čtení posledních záznamů konzole. |
/api/v1/macros | Výpis, uložení a spuštění uživatelských maker. |
/api/v1/materials | Knihovna materiálů: předvolby podle materiálu a tloušťky. |
/api/v1/profiles | Profily stroje: vytvoření, výpis, použití. |
/api/v1/assets | Přístup k prostředkům panelu Knihovna grafiky. |
/api/v1/vector | Vektorové operace: převod, booleovské operace, seskupení, cesta. |
/api/v1/events | Stream změn stavu a událostí stroje přes WebSocket. |
Referenční stránky pro jednotlivé zdroje se stále připravují; do té doby nahlédněte do schématu možností agenta.
Zjištění aktuálního rozhraní
Nejrychlejší způsob, jak zjistit, co vaše nainstalovaná verze poskytuje:
curl -s http://localhost:5900/api/v1/agent/capabilities | jq .Tento příkaz vrátí úplné schéma možností včetně všech koncových bodů, jejich parametrů a tvaru odpovědí. Schéma je autoritativním popisem; tato stránka slouží jako průvodce.
Pro kontrolu stavu:
curl -s http://localhost:5900/api/v1/agent/state | jq .Písemný úvod k ovládání aplikace:
curl -s http://localhost:5900/api/v1/agent/guideVerzování
Všechny cesty jsou pod /api/v1. Zpětně nekompatibilní změny budou při jejich zavedení umístěny pod /api/v2. Doplňující změny (nové koncové body, nová volitelná pole) se vydávají ve v1 bez zvýšení verze.
Související informace
- Průvodce používáním HTTP API: úvod ve stylu tutoriálu s praktickými příklady.
- Jak CLI a aplikace sdílejí stav: model konzistence těchto koncových bodů.
- Nastavení → Obecné: místo, kde lze povolit API a zvolit port.