HTTP API
Χρησιμοποιήστε το Beam Bench από οποιονδήποτε πελάτη HTTP. Η ίδια διεπαφή που χρησιμοποιεί το CLI.
Το HTTP API είναι η διεπαφή ενσωμάτωσης του Beam Bench. Η εφαρμογή υπολογιστή, το CLI και κάθε εξωτερικός πελάτης επικοινωνούν με τις ίδιες διαδρομές. Αν έχετε μια περίπτωση χρήσης που χρειάζεται το 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 του μηχανήματος στο τοπικό δίκτυο από οποιαδήποτε συσκευή του δικτύου.
Η θύρα μπορεί να ρυθμιστεί στις Ρυθμίσεις → Γενικά, ενώ η προεπιλεγμένη τιμή είναι 5900.
Έλεγχος ταυτότητας
Κανένας. Το API δεν διαθέτει διακριτικό, κλειδί ή σύνδεση.
- Με σύνδεση localhost, το μοντέλο πρόσβασης σε επίπεδο λειτουργικού συστήματος αποτελεί το όριο: κάθε διεργασία στον υπολογιστή σας μπορεί να επικοινωνήσει με το API.
- Όταν είναι ενεργοποιημένη η σύνδεση δικτύου, οποιοσδήποτε στο ίδιο δίκτυο μπορεί να επικοινωνήσει με το API. Μην χρησιμοποιείτε τη λειτουργία σύνδεσης δικτύου σε μη αξιόπιστο Wi-Fi.
Μορφή αιτήματος
Όλα τα σώματα POST/PATCH/PUT είναι JSON:
Content-Type: application/jsonΤα ερωτήματα είναι επίπεδα key=value. Τα τμήματα διαδρομής κωδικοποιούνται σε URL όπως συνήθως.
Περίβλημα απόκρισης
Οι επιτυχείς αποκρίσεις επιστρέφουν απευθείας το σώμα του πόρου, χωρίς περίβλημα:
{
"field": "value",
"...": "..."
}Τα σφάλματα επιστρέφουν ένα ομοιόμορφο περίβλημα:
{
"error": {
"code": "InvalidInput",
"message": "Human-readable summary of what went wrong.",
"details": { "...optional structured context..." }
}
}Το error.code είναι ένα από τα εξής:
| Κωδικός | HTTP | Σημασία |
|---|---|---|
NotFound | 404 | Ο ζητούμενος πόρος δεν υπάρχει. |
InvalidInput | 400 | Το σώμα ή οι παράμετροι του αιτήματος είχαν λανθασμένη μορφή ή απορρίφθηκαν. |
InvalidState | 412 | Η εφαρμογή δεν βρίσκεται σε κατάσταση όπου αυτή η λειτουργία έχει νόημα, για παράδειγμα δεν είναι ανοιχτό κανένα έργο. |
Busy | 409 | Μια λειτουργία σε διένεξη βρίσκεται ήδη σε εξέλιξη. |
Conflict | 409 | Ένας άλλος συντάκτης άλλαξε τον πόρο από την τελευταία φορά που τον διαβάσατε. |
StaleRevision | 412 | Το διακριτικό αναθεώρησής σας είναι παλαιότερο από το τρέχον. Διαβάστε ξανά και επαναλάβετε. |
MachineIo | 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.
Ομάδες endpoint
| Διαδρομή | Τι καλύπτει |
|---|---|
/api/v1/app | Πληροφορίες σε επίπεδο εφαρμογής: έκδοση, χρόνος λειτουργίας, δυνατότητες. |
/api/v1/agent | Σχήμα δυνατοτήτων του agent, στιγμιότυπο κατάστασης και οδηγός λειτουργίας. |
/api/v1/projects | Άνοιγμα, αποθήκευση, κλείσιμο. Επίπεδα, αντικείμενα, αναίρεση και επανάληψη. |
/api/v1/projects/import | Εισαγωγή SVG, DXF, PDF, AI και εικόνων raster σε ένα έργο. |
/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 | Λειτουργίες διανυσμάτων: μετατροπή, λογικές πράξεις, ομαδοποίηση, διαδρομή. |
/api/v1/events | Ροή WebSocket με αλλαγές κατάστασης και συμβάντα μηχανήματος. |
Οι σελίδες αναφοράς ανά πόρο βρίσκονται ακόμη υπό ανάπτυξη. Στο μεταξύ, συμβουλευτείτε το σχήμα δυνατοτήτων του agent.
Ανακάλυψη της ενεργής διεπαφής
Ο ταχύτερος τρόπος για να δείτε τι παρέχει η εγκατεστημένη έκδοσή σας:
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 και επιλέγετε τη θύρα.