Documentation de Beam Bench

API HTTP

Pilotez Beam Bench depuis n’importe quel client HTTP. Même surface que celle utilisée par la CLI.

L’API HTTP est la surface d’intégration de Beam Bench. L’application de bureau, la CLI et tout client externe communiquent tous avec les mêmes routes. Si votre cas d’utilisation nécessite Beam Bench dans un environnement autre que la CLI (application web, serveur d’intégration, application mobile, vos propres outils), utilisez directement l’API.

L’API est fournie avec l’application de bureau et s’exécute dans le même processus. Aucun service distinct n’est à installer.

Valeurs par défaut et sécurité

Dans la version actuelle, le serveur d’API local est fourni avec les paramètres suivants :

  • API locale : désactivée.
  • Port de l’API : 5900.
  • Autoriser les appareils du réseau : désactivé. Lorsque l’API est activée, elle se lie à 127.0.0.1 et accepte uniquement les connexions provenant de cet ordinateur.

L’API n’écoute aucune connexion tant que vous ne l’avez pas activée. L’activation de l’accès réseau nécessite une autorisation distincte, car l’API n’est pas authentifiée et inclut des opérations capables de déplacer la machine et d’activer le laser.

Pour utiliser l’API, modifiez ses paramètres dans Paramètres → Général :

  1. Ouvrez l’application de bureau.
  2. Modifier → Paramètres → Général.
  3. Activez API locale.
  4. Laissez Autoriser les appareils du réseau désactivé, sauf si un autre appareil de confiance doit se connecter.

Les modifications prennent effet immédiatement ; aucun redémarrage n’est nécessaire.

URL de base

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

<host> est localhost (ou 127.0.0.1) lorsque Autoriser les appareils du réseau est désactivé. Lorsqu’il est activé, le serveur est accessible à l’adresse IP LAN de la machine depuis n’importe quel appareil du réseau.

Le port est configurable dans Paramètres → Général ; 5900 est la valeur par défaut.

Authentification

Aucune. L’API ne possède ni jeton, ni clé, ni connexion.

  • Avec une liaison localhost, le modèle d’accès au niveau du système d’exploitation constitue la limite : tout processus sur votre machine peut communiquer avec l’API.
  • Avec la liaison réseau activée, toute personne sur le même réseau peut communiquer avec l’API. N’utilisez pas le mode de liaison réseau sur un Wi-Fi non fiable.

Format des requêtes

Tous les corps POST/PATCH/PUT sont au format JSON :

Content-Type: application/json

Les chaînes de requête sont de simples paires clé=valeur. Les segments de chemin sont encodés en URL comme d’habitude.

Enveloppe de réponse

Les réponses réussies renvoient directement le corps de la ressource, sans enveloppe :

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

Les erreurs renvoient une enveloppe uniforme :

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

error.code est l’un des suivants :

IdentifiantHTTPSignification
NotFound404La ressource demandée n’existe pas.
InvalidInput400Le corps de la requête ou les paramètres étaient mal formés ou ont été rejetés.
InvalidState412L’application n’est pas dans un état où cette opération est pertinente (par ex. aucun projet ouvert).
Busy409Une opération en conflit est déjà en cours.
Conflict409Un autre rédacteur a modifié la ressource depuis votre dernière lecture.
StaleRevision412Votre jeton de révision est antérieur au jeton actuel. Relisez et réessayez.
MachineIo502La connexion à la machine a échoué (déconnexion, délai d’expiration, erreur de transport).
Persistence500L’écriture ou la lecture du disque a échoué.
Internal500Erreur serveur inattendue. Signalez-la comme un bogue.

Erreurs nécessitant une confirmation

Un petit ensemble d’opérations peut déplacer la machine ou activer le laser. Ces points de terminaison exigent un indicateur de confirmation explicite dans le corps de la requête. S’il est absent, l’API renvoie 428 Precondition Required :

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

Renvoyez la requête avec l’indicateur nommé défini sur true. Les indicateurs actuellement utilisés sont confirm_motion, confirm_laser_on, confirm_raw_gcode et confirm_air_assist.

Groupes de points de terminaison

CheminContenu
/api/v1/appInformations au niveau de l’application : version, durée de fonctionnement, capacités.
/api/v1/agentSchéma des capacités de l’agent, instantané d’état et guide d’utilisation.
/api/v1/projectsOuvrir, enregistrer, fermer. Calques, objets, annuler/rétablir.
/api/v1/projects/importImporter des images SVG, DXF, PDF, AI et matricielles dans un projet.
/api/v1/exportRendre un projet en SVG, DXF, PDF, EPS, AI.
/api/v1/designDécrire la conception actuelle, rendre au format PNG, appliquer des modifications transactionnelles.
/api/v1/previewGénérer des aperçus de découpe et des statistiques.
/api/v1/jobsPrécontrôle, exécuter, essai à blanc, mettre en pause, reprendre, encadrer, arrêter.
/api/v1/machineConnecter, déconnecter, état, déplacement manuel, prise d’origine.
/api/v1/cameraAppareils, état, capture, superposition (affichage, transformation, rendu), étalonnage, alignement.
/api/v1/consoleEnvoyer du G-code brut. Lire le journal récent de la console.
/api/v1/macrosLister, enregistrer et exécuter des macros utilisateur.
/api/v1/materialsBibliothèque de matériaux : préréglages indexés par matériau et épaisseur.
/api/v1/profilesProfils de machine : créer, lister, appliquer.
/api/v1/assetsAccès aux ressources de la Bibliothèque d’illustrations.
/api/v1/vectorOpérations vectorielles : convertir, booléen, grouper, chemin.
/api/v1/eventsFlux WebSocket des changements d’état et des événements de la machine.

Les pages de référence par ressource sont en cours d’élaboration ; consultez entre-temps le schéma des capacités de l’agent.

Découvrir la surface disponible

Le moyen le plus rapide de voir ce que votre version installée expose :

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

Cette commande renvoie le schéma complet des capacités, y compris chaque point de terminaison, ses paramètres et la forme de sa réponse. Le schéma est la description faisant autorité ; cette page sert de guide.

Pour l’inspection de l’état :

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

Pour une présentation écrite de la façon de piloter l’application :

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

Gestion des versions

Toutes les routes se trouvent sous /api/v1. Les changements incompatibles seront placés sous /api/v2 lorsqu’ils surviendront. Les changements additifs (nouveaux points de terminaison, nouveaux champs facultatifs) sont fournis dans v1 sans augmentation de version.

Liens connexes

On this page