HTTP API
Χειριστείτε το Beam Bench από οποιονδήποτε πελάτη HTTP. Το ίδιο περιβάλλον που χρησιμοποιεί το CLI.
Το HTTP API είναι το περιβάλλον ενσωμάτωσης του Beam Bench. Οι περισσότερες εντολές CLI και οι εξωτερικοί πελάτες χρησιμοποιούν αυτές τις διαδρομές. Το περιβάλλον εργασίας υπολογιστή καλεί την κοινόχρηστη υπηρεσία μέσω Tauri IPC και δεν απαιτεί τον διακομιστή HTTP για κανονική χρήση. Αν έχετε περίπτωση χρήσης που χρειάζεται το Beam Bench σε περιβάλλον εκτός CLI, όπως web εφαρμογή, διακομιστή ενσωμάτωσης, εφαρμογή κινητού ή δικά σας εργαλεία, χρησιμοποιήστε απευθείας το API.
Το API παρέχεται μαζί με την εφαρμογή υπολογιστή και εκτελείται εντός της ίδιας διεργασίας. Δεν υπάρχει ξεχωριστή υπηρεσία για εγκατάσταση.
Προεπιλογές και ασφάλεια
Στην τρέχουσα έκδοση, ο τοπικός διακομιστής API παρέχεται με αυτές τις ρυθμίσεις:
- Τοπικό API: απενεργοποιημένο.
- Θύρα API: 5900.
- Να επιτρέπεται η σύνδεση συσκευών δικτύου: απενεργοποιημένο. Όταν το API είναι ενεργοποιημένο, συνδέεται στη
127.0.0.1και δέχεται συνδέσεις μόνο από αυτόν τον υπολογιστή.
Το API δεν ακούει για συνδέσεις μέχρι να επιλέξετε να το ενεργοποιήσετε. Η ενεργοποίηση της πρόσβασης δικτύου απαιτεί ξεχωριστή ρητή επιλογή, επειδή το API δεν διαθέτει έλεγχο ταυτότητας και περιλαμβάνει λειτουργίες που μπορούν να μετακινήσουν το μηχάνημα και να ενεργοποιήσουν το λέιζερ.
Για να χρησιμοποιήσετε το API, αλλάξτε τις ρυθμίσεις του από τις Ρυθμίσεις → Γενικά:
- Ανοίξτε την εφαρμογή υπολογιστή.
- Επεξεργασία → Ρυθμίσεις → Γενικά.
- Ενεργοποιήστε το Τοπικό API.
- Αφήστε απενεργοποιημένο το Να επιτρέπεται η σύνδεση συσκευών δικτύου, εκτός αν πρέπει να συνδεθεί άλλη αξιόπιστη συσκευή.
Οι αλλαγές εφαρμόζονται αμέσως, χωρίς επανεκκίνηση.
Βασικό URL
http://<host>:5900/api/v1Το <host> είναι localhost ή 127.0.0.1 όταν το Να επιτρέπεται η σύνδεση συσκευών δικτύου είναι απενεργοποιημένο. Όταν είναι ενεργοποιημένο, ο διακομιστής είναι προσβάσιμος στη διεύθυνση IP LAN του μηχανήματος από οποιαδήποτε συσκευή του δικτύου.
Η θύρα μπορεί να ρυθμιστεί στις Ρυθμίσεις → Γενικά, ενώ η προεπιλογή είναι 5900.
Έλεγχος ταυτότητας
Κανένας. Το API δεν διαθέτει διακριτικό, κλειδί ή σύνδεση.
- Με σύνδεση localhost, το όριο είναι το μοντέλο πρόσβασης σε επίπεδο λειτουργικού συστήματος: κάθε διεργασία στον υπολογιστή σας μπορεί να επικοινωνήσει με το API.
- Με ενεργοποιημένη σύνδεση δικτύου, οποιοσδήποτε στο ίδιο δίκτυο μπορεί να επικοινωνήσει με το API. Μην χρησιμοποιείτε τη λειτουργία σύνδεσης δικτύου σε μη αξιόπιστο Wi-Fi.
Μορφή αιτήματος
Όλα τα σώματα POST/PATCH/PUT είναι JSON:
Content-Type: application/jsonΤα συμβολοσειρά ερωτήματος είναι επίπεδα key=value. Τα τμήματα διαδρομής κωδικοποιούνται ως URL, όπως συνήθως.
Περίβλημα απόκρισης
Οι επιτυχείς αποκρίσεις επιστρέφουν απευθείας το σώμα του πόρου, χωρίς περίβλημα:
{
"field": "value",
"...": "..."
}Τα σφάλματα επιστρέφουν ομοιόμορφο περίβλημα:
{
"error": {
"code": "invalid_input",
"message": "Human-readable summary of what went wrong.",
"details": { "...optional structured context..." }
}
}Το error.code είναι ένα από τα εξής:
| Κωδικός | HTTP | Σημασία |
|---|---|---|
not_found | 404 | Ο ζητούμενος πόρος δεν υπάρχει. |
invalid_input | 400 | Το σώμα ή οι παράμετροι του αιτήματος είχαν λανθασμένη μορφή ή απορρίφθηκαν. |
invalid_state | 412 | Η εφαρμογή δεν βρίσκεται σε κατάσταση όπου αυτή η λειτουργία έχει νόημα, για παράδειγμα δεν είναι ανοιχτό κανένα έργο. |
busy | 409 | Μια αντικρουόμενη λειτουργία βρίσκεται ήδη σε εξέλιξη. |
conflict | 409 | Ένας άλλος εγγραφέας άλλαξε τον πόρο από την τελευταία ανάγνωσή σας. |
stale_revision | 412 | Το διακριτικό αναθεώρησής σας είναι παλαιότερο από το τρέχον. Διαβάστε ξανά και επαναλάβετε. |
machine_io | 502 | Η σύνδεση με το μηχάνημα απέτυχε, λόγω αποσύνδεσης, λήξης χρόνου ή σφάλματος μεταφοράς. |
persistence | 500 | Η εγγραφή ή η ανάγνωση στον δίσκο απέτυχε. |
internal | 500 | Μη αναμενόμενο σφάλμα διακομιστή. Αναφέρετέ το ως σφάλμα. |
Σφάλματα που απαιτούν επιβεβαίωση
Ένα μικρό σύνολο λειτουργιών μπορεί να μετακινήσει το μηχάνημα ή να ενεργοποιήσει το λέιζερ. Αυτά τα endpoint απαιτούν ρητή σημαία επιβεβαίωσης στο σώμα του αιτήματος. Αν λείπει, το API επιστρέφει 428 Precondition Required:
{
"error_code": "CONFIRMATION_REQUIRED",
"missing": ["confirm_motion"],
"message": "This command can move the machine and requires explicit confirmation."
}Στείλτε ξανά το αίτημα με την επώνυμη σημαία ορισμένη σε true. Οι σημαίες που χρησιμοποιούνται επί του παρόντος είναι confirm_motion, confirm_laser_on, confirm_raw_gcode και confirm_air_assist.
Ταυτόχρονες επεξεργασίες έργου
Οι συναλλαγές σχεδίασης συγκρίνουν το έργο που κατέγραψαν κατά τη στιγμή της υποβολής. Μια ταυτόχρονη επεξεργασία, αλλαγή έργου ή κλείσιμο μπορεί να επιστρέψει stale_revision. Ανανεώστε την κατάσταση και επανεκτιμήστε την αλλαγή πριν από την επανάληψη. Μην επαναφέρετε άκριτα ένα παλαιότερο στιγμιότυπο έργου πάνω από νεότερη εργασία.
Ομάδες endpoint
| Διαδρομή | Τι καλύπτει |
|---|---|
/api/v1/app | Πληροφορίες εφαρμογής: έκδοση, χρόνος λειτουργίας, δυνατότητες. |
/api/v1/agent | Σχήμα δυνατοτήτων πράκτορα, στιγμιότυπο κατάστασης και οδηγός λειτουργίας. |
/api/v1/projects | Άνοιγμα, αποθήκευση, κλείσιμο. Επίπεδα, αντικείμενα, αναίρεση και επανάληψη. |
/api/v1/projects/import | Εισαγωγή αρχείων LightBurn, SVG, DXF, PDF, AI, EPS και raster. Μια ειδική διαδρομή χειρίζεται περιορισμένη εισαγωγή γεωμετρίας G-code. |
/api/v1/export | Απόδοση έργου σε SVG, DXF, PDF, EPS, AI. |
/api/v1/design | Περιγραφή της τρέχουσας σχεδίασης, απόδοση σε PNG, εφαρμογή συναλλακτικών επεξεργασιών. |
/api/v1/preview | Δημιουργία προεπισκοπήσεων κοπής και στατιστικών. |
/api/v1/jobs | Προέλεγχος, εκτέλεση, δοκιμαστική εκτέλεση, παύση, συνέχιση, πλαισίωση, διακοπή. |
/api/v1/machine | Σύνδεση, αποσύνδεση, κατάσταση, βηματική μετακίνηση, μετάβαση στην αρχική θέση. |
/api/v1/camera | Συσκευές, κατάσταση, λήψη, επικάλυψη, προβολή, μετασχηματισμός, απόδοση, βαθμονόμηση, ευθυγράμμιση. |
/api/v1/console | Αποστολή ακατέργαστου G-code. Ανάγνωση πρόσφατου αρχείου καταγραφής κονσόλας. |
/api/v1/macros | Καταχώριση, αποθήκευση και εκτέλεση μακροεντολών χρήστη. |
/api/v1/materials | Βιβλιοθήκη υλικών: προεπιλογές με κλειδί το υλικό και το πάχος. |
/api/v1/profiles | Προφίλ μηχανήματος: δημιουργία, καταχώριση, εφαρμογή. |
/api/v1/assets | Πρόσβαση σε στοιχεία της Βιβλιοθήκης γραφικών. |
/api/v1/vector | Λειτουργίες διανυσμάτων: μετατροπή, boolean, ομαδοποίηση, διαδρομή. |
/api/v1/events | Ροή WebSocket αλλαγών κατάστασης και συμβάντων μηχανήματος. |
Οι σελίδες αναφοράς ανά πόρο βρίσκονται ακόμη υπό ανάπτυξη. Στο μεταξύ, συμβουλευτείτε το σχήμα δυνατοτήτων του πράκτορα.
Ανακαλύψτε το ενεργό περιβάλλον
Ο ταχύτερος τρόπος για να δείτε τι παρέχει η εγκατεστημένη έκδοσή σας:
curl -s http://localhost:5900/api/v1/agent/capabilities | jq .Αυτό επιστρέφει το πλήρες σχήμα δυνατοτήτων, συμπεριλαμβανομένων κάθε endpoint, των παραμέτρων του και της μορφής της απόκρισής του. Το σχήμα είναι η έγκυρη περιγραφή, ενώ αυτή η σελίδα αποτελεί οδηγό.
Για έλεγχο της κατάστασης:
curl -s http://localhost:5900/api/v1/agent/state | jq .Για γραπτή καθοδήγηση σχετικά με τον χειρισμό της εφαρμογής:
curl -s http://localhost:5900/api/v1/agent/guideΕκδόσεις
Όλες οι διαδρομές βρίσκονται κάτω από το /api/v1. Οι αλλαγές που δεν είναι συμβατές μεταφέρονται στο /api/v2 όταν προκύπτουν. Οι προσθετικές αλλαγές, όπως νέα endpoint και νέα προαιρετικά πεδία, παρέχονται στο v1 χωρίς αλλαγή έκδοσης.
Σχετικά
- Οδηγός χρήσης του HTTP API: εισαγωγή σε μορφή οδηγού με παραδείγματα.
- Πώς το CLI και η εφαρμογή μοιράζονται την κατάσταση: το μοντέλο συνέπειας πίσω από αυτά τα endpoint.
- Ρυθμίσεις → Γενικά: εδώ ενεργοποιείτε το API και επιλέγετε τη θύρα.