Dokumentacja Beam Bench

HTTP API

Steruj aplikacją Beam Bench za pomocą dowolnego klienta HTTP. Ten sam interfejs, z którego korzysta CLI.

HTTP API to interfejs integracyjny aplikacji Beam Bench. Aplikacja desktopowa, CLI i każdy zewnętrzny klient korzystają z tych samych tras. Jeśli chcesz używać Beam Bench w środowisku innym niż CLI (aplikacji internetowej, serwerze integracyjnym, aplikacji mobilnej lub własnych narzędziach), użyj bezpośrednio API.

API jest dostarczane z aplikacją desktopową i działa w tym samym procesie. Nie trzeba instalować osobnej usługi.

Ustawienia domyślne i bezpieczeństwo

W bieżącej wersji lokalny serwer API korzysta z następujących ustawień:

  • Lokalne API: wyłączone.
  • Port API: 5900.
  • Zezwól urządzeniom w sieci: wyłączone. Gdy API jest włączone, nasłuchuje na 127.0.0.1 i akceptuje połączenia tylko z tego komputera.

API nie nasłuchuje połączeń, dopóki nie zostanie włączone. Włączenie dostępu sieciowego wymaga osobnej zgody, ponieważ API nie uwierzytelnia użytkowników i zawiera operacje, które mogą poruszać maszyną oraz uruchamiać laser.

Aby używać API, zmień jego ustawienia w sekcji Ustawienia → Ogólne:

  1. Otwórz aplikację desktopową.
  2. Edycja → Ustawienia → Ogólne.
  3. Włącz Lokalne API.
  4. Pozostaw opcję Zezwól urządzeniom w sieci wyłączoną, chyba że inne zaufane urządzenie musi się połączyć.

Zmiany zaczynają obowiązywać natychmiast; ponowne uruchomienie nie jest wymagane.

Bazowy adres URL

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

<host> to localhost (lub 127.0.0.1), gdy opcja Zezwól urządzeniom w sieci jest wyłączona. Gdy jest włączona, serwer jest dostępny pod adresem IP maszyny w sieci LAN z dowolnego urządzenia w tej sieci.

Port połączenia można skonfigurować w sekcji Ustawienia → Ogólne; domyślnie jest to 5900.

Uwierzytelnianie

Brak. API nie używa tokenu, klucza ani logowania.

  • Przy nasłuchiwaniu na localhost granicę dostępu stanowi model dostępu na poziomie systemu operacyjnego: każdy proces na komputerze może komunikować się z API.
  • Przy włączonym nasłuchiwaniu sieciowym każdy użytkownik tej samej sieci może komunikować się z API. Nie używaj trybu nasłuchiwania sieciowego w niezaufanych sieciach Wi-Fi.

Format pliku żądania

Wszystkie treści żądań POST/PATCH/PUT są zapisane w formacie JSON:

Content-Type: application/json

Ciągi zapytań mają płaską postać key=value. Segmenty ścieżki są kodowane w adresie URL w standardowy sposób.

Koperta odpowiedzi

Pomyślne odpowiedzi zwracają bezpośrednio treść zasobu, bez opakowania:

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

Błędy zwracają jednolitą kopertę:

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

error.code ma jedną z wartości:

KodHTTPZnaczenie
NotFound404Żądany zasób nie istnieje.
InvalidInput400Treść żądania lub parametry mają nieprawidłowy format albo zostały odrzucone.
InvalidState412Aplikacja nie jest w stanie, w którym ta operacja ma sens (np. nie otwarto projektu).
Busy409Trwa już kolidująca operacja.
Conflict409Inny zapisujący zmienił zasób od czasu ostatniego odczytu.
StaleRevision412Token rewizji jest starszy niż bieżący. Odczytaj dane ponownie i spróbuj jeszcze raz.
MachineIo502Połączenie z maszyną nie powiodło się (rozłączenie, przekroczenie limitu czasu, błąd transportu).
Persistence500Zapis lub odczyt dysku nie powiódł się.
Internal500Nieoczekiwany błąd serwera. Zgłoś go jako błąd.

Błędy wymagające potwierdzenia

Niewielka grupa operacji może poruszać maszyną lub uruchamiać laser. Te punkty końcowe wymagają jawnej flagi potwierdzenia w treści żądania. Jeśli jej brakuje, API zwraca 428 Precondition Required:

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

Wyślij żądanie ponownie z wymienioną flagą ustawioną na true. Obecnie używane flagi to confirm_motion, confirm_laser_on, confirm_raw_gcode i confirm_air_assist.

Grupy punktów końcowych

ŚcieżkaZakres
/api/v1/appInformacje na poziomie aplikacji: wersja, czas działania, możliwości.
/api/v1/agentSchemat możliwości agenta, migawka stanu i instrukcja obsługi.
/api/v1/projectsOtwieranie, zapisywanie i zamykanie. Warstwy, obiekty, cofanie/ponawianie.
/api/v1/projects/importImportowanie plików SVG, DXF, PDF, AI i obrazów rastrowych do projektu.
/api/v1/exportRenderowanie projektu do formatów SVG, DXF, PDF, EPS i AI.
/api/v1/designOpis bieżącego projektu, renderowanie do PNG, stosowanie transakcyjnych edycji.
/api/v1/previewGenerowanie podglądów cięcia i statystyk.
/api/v1/jobsKontrola wstępna, uruchamianie, przebieg testowy, wstrzymywanie, wznawianie, obrys, zatrzymywanie.
/api/v1/machineŁączenie, rozłączanie, stan, przesuwanie krokowe, bazowanie.
/api/v1/cameraUrządzenia, stan, przechwytywanie, nakładka (wyświetlanie, transformacja, renderowanie), kalibracja, wyrównanie.
/api/v1/consoleWysyłanie surowego G-code. Odczyt ostatnich wpisów dziennika konsoli.
/api/v1/macrosWyświetlanie listy, zapisywanie i uruchamianie makr użytkownika.
/api/v1/materialsBiblioteka materiałów: ustawienia wstępne uporządkowane według materiału i grubości.
/api/v1/profilesProfil maszyn: tworzenie, wyświetlanie listy, stosowanie.
/api/v1/assetsDostęp do zasobów panelu Biblioteka grafik.
/api/v1/vectorOperacje na wektorach: konwertowanie, operacje boolowskie, grupowanie, ścieżki.
/api/v1/eventsStrumień WebSocket zmian stanu i zdarzeń maszyny.

Strony informacyjne poszczególnych zasobów są w przygotowaniu; tymczasem skorzystaj ze schematu możliwości agenta.

Odkrywanie bieżącego interfejsu

Najszybszy sposób sprawdzenia, co udostępnia zainstalowana wersja:

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

Zwracany jest pełny schemat możliwości, obejmujący każdy punkt końcowy, jego parametry i format odpowiedzi. Schemat jest nadrzędnym opisem interfejsu; ta strona pełni funkcję przewodnika.

Aby sprawdzić stan:

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

Aby uzyskać pisemne wprowadzenie do sterowania aplikacją:

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

Wersjonowanie

Wszystkie trasy znajdują się pod /api/v1. W przypadku wprowadzenia zmian niezgodnych wstecznie zostanie użyte /api/v2. Zmiany przyrostowe (nowe punkty końcowe, nowe opcjonalne pola) są wdrażane w v1 bez zmiany numeru wersji.

Powiązane materiały

On this page