API HTTP
Pilotez Beam Bench depuis n’importe quel client HTTP. La même interface que celle utilisée par la CLI.
L’API HTTP est l’interface d’intégration de Beam Bench. La plupart des commandes de la CLI et des clients externes utilisent ces routes. Le frontend de bureau appelle le service partagé via Tauri IPC et n’a pas besoin du serveur HTTP pour une utilisation normale. Si votre cas d’utilisation nécessite Beam Bench dans un environnement sans CLI, comme une application web, un serveur d’intégration, une application mobile ou vos propres outils, utilisez directement l’API.
L’API est fournie avec l’application de bureau et s’exécute dans le processus. Aucun service séparé n’est à installer.
Valeurs par défaut et sécurité
Dans la version actuelle, le serveur 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.1et accepte uniquement les connexions provenant de cet ordinateur.
L’API n’écoute aucune connexion tant que vous ne l’avez pas activée. L’accès réseau est une activation distincte, car l’API ne dispose d’aucune authentification et comprend des opérations capables de déplacer la machine et de déclencher le laser.
Pour utiliser l’API, modifiez ses paramètres depuis Paramètres → Général :
- Ouvrez l’application de bureau.
- Modifier → Paramètres → Général.
- Activez API locale.
- 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, sans redémarrage.
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 du réseau local 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 n’a 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 de votre machine peut communiquer avec l’API.
- Avec la liaison réseau activée, toute personne présente sur le même réseau peut communiquer avec l’API. N’utilisez pas le mode de liaison réseau sur un réseau Wi-Fi non fiable.
Format des requêtes
Tous les corps POST/PATCH/PUT sont au format JSON :
Content-Type: application/jsonLes chaînes de requête sont des paires clé=valeur simples. Les segments de chemin sont encodés dans les URL selon les règles habituelles.
Enveloppe des réponses
Les réponses réussies renvoient directement le corps de la ressource, sans enveloppe :
{
"field": "value",
"...": "..."
}Les erreurs renvoient une enveloppe uniforme :
{
"error": {
"code": "invalid_input",
"message": "Human-readable summary of what went wrong.",
"details": { "...optional structured context..." }
}
}error.code peut prendre l’une des valeurs suivantes :
| Code | HTTP | Signification |
|---|---|---|
not_found | 404 | La ressource demandée n’existe pas. |
invalid_input | 400 | Le corps ou les paramètres de la requête sont mal formés ou ont été rejetés. |
invalid_state | 412 | L’application n’est pas dans un état où cette opération a du sens, par exemple aucun projet n’est ouvert. |
busy | 409 | Une opération en conflit est déjà en cours. |
conflict | 409 | Un autre processus d’écriture a modifié la ressource depuis votre dernière lecture. |
stale_revision | 412 | Votre jeton de révision est antérieur à la révision actuelle. Relisez les données et réessayez. |
machine_io | 502 | La connexion à la machine a échoué : déconnexion, délai d’attente dépassé ou erreur de transport. |
persistence | 500 | La lecture ou l’écriture sur le disque a échoué. |
internal | 500 | Erreur inattendue du serveur. Signalez-la comme un bogue. |
Erreurs nécessitant une confirmation
Un petit nombre d’opérations peuvent déplacer la machine ou déclencher le laser. Ces points d’accès nécessitent un indicateur de confirmation explicite dans le corps de la requête. S’il manque, 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.
Modifications simultanées d’un projet
Les transactions de conception comparent le projet capturé au moment de la validation. Une modification simultanée, un changement de projet ou une fermeture peut renvoyer stale_revision. Actualisez l’état et réévaluez la modification avant de réessayer. Ne rejouez pas aveuglément un ancien instantané du projet par-dessus un travail plus récent.
Groupes de points d’accès
| Chemin | Fonction |
|---|---|
/api/v1/app | Informations au niveau de l’application : version, durée d’exécution et capacités. |
/api/v1/agent | Schéma des capacités de l’agent, instantané de l’état et guide d’utilisation. |
/api/v1/projects | Ouvrir, enregistrer et fermer. Calques, objets, annuler/rétablir. |
/api/v1/projects/import | Importer des fichiers LightBurn, SVG, DXF, PDF, AI, EPS et raster. Une route dédiée gère l’importation limitée de géométrie G-code. |
/api/v1/export | Rendre un projet en SVG, DXF, PDF, EPS et AI. |
/api/v1/design | Décrire la conception actuelle, la rendre en PNG et appliquer des modifications transactionnelles. |
/api/v1/preview | Générer des aperçus de découpe et des statistiques. |
/api/v1/jobs | Vérification préalable, exécution, simulation, pause, reprise, cadrage et arrêt. |
/api/v1/machine | Connecter, déconnecter, consulter l’état, déplacer par à-coups et référencer. |
/api/v1/camera | Appareils, état, capture, superposition, affichage, transformation et rendu, étalonnage et alignement. |
/api/v1/console | Envoyer du G-code brut. Lire le journal récent de la console. |
/api/v1/macros | Répertorier, enregistrer et exécuter les macros utilisateur. |
/api/v1/materials | Bibliothèque de matériaux : préréglages indexés par matériau et épaisseur. |
/api/v1/profiles | Profils machine : créer, répertorier et appliquer. |
/api/v1/assets | Accès aux ressources de la Bibliothèque d’illustrations. |
/api/v1/vector | Opérations vectorielles : convertir, booléennes, grouper et manipuler les tracés. |
/api/v1/events | Flux WebSocket des changements d’état et des événements de la machine. |
Les pages de référence par ressource sont encore en cours de rédaction ; consultez en attendant le schéma des capacités de l’agent.
Découvrir l’interface active
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, avec chaque point d’accès, ses paramètres et la forme de sa réponse. Le schéma constitue la description faisant autorité ; cette page sert de guide.
Pour examiner l’état :
curl -s http://localhost:5900/api/v1/agent/state | jq .Pour obtenir une présentation écrite de la manière de piloter l’application :
curl -s http://localhost:5900/api/v1/agent/guideGestion des versions
Toutes les routes se trouvent sous /api/v1. Les changements incompatibles seront placés dans /api/v2 lorsqu’ils se produiront. Les changements additifs, comme les nouveaux points d’accès ou les nouveaux champs facultatifs, sont publiés dans v1 sans changement de version.
Pages associées
- Guide d’utilisation de l’API HTTP : introduction sous forme de tutoriel avec des exemples détaillés.
- Comment la CLI et l’application partagent leur état : modèle de cohérence sous-jacent à ces points d’accès.
- Paramètres → Général : emplacement d’activation de l’API et de sélection du port.