Entwickeln
Labelyard ist ein FastAPI-Backend (Python 3.12, SQLite, asyncio), das auch eine Weboberfläche in React und TypeScript ausliefert, in einem Container. Alles, was die Weboberfläche tut, läuft über dieselbe versionierte REST-API, die auch dein eigener Code nutzen kann.
Die API
Abschnitt betitelt „Die API“- Versionierte Pfade. Jede Route liegt unter
/api/v1/. Nur die Prüfpfade/healthzund/readinessliegen außerhalb. - Anmeldung. Schick einen API-Schlüssel in
X-Label-Hub-Key(siehe API-Schlüssel); Webhooks nutzenX-API-Key. - Live-Ereignisse.
/api/v1/eventsliefert Server-Sent Events zu Änderungen an Druckern und Aufträgen. - Der Vertrag. Das OpenAPI-Dokument wird aus dem Code erzeugt, von jedem laufenden Hub unter
/openapi.jsonausgeliefert und dort unter/docszum Blättern angeboten. Die API-Referenz auf dieser Seite wird beim Bauen aus demselben Dokument erzeugt.
Die API-Referenz ist die einzige Stelle dieser Seite, die nicht vollständig auf Deutsch vorliegt: Navigation und Rahmen sind deutsch, aber die Beschreibungen der Operationen kommen aus dem englischen OpenAPI-Dokument, und die Abschnittsüberschriften des Plugins (Parameters, Responses, Request Body) sind fest auf Englisch.
Fehler tragen einen maschinenlesbaren error_code, zum Beispiel tape_empty, printer_offline oder content_type_data_mismatch, damit ein Client auf die Ursache reagieren kann statt auf den Statuscode.
Labelyard erweitern
Abschnitt betitelt „Labelyard erweitern“- Druckermodelle sind Plugins in
backend/app/printer_models/; eine Datei je Serie hält modellspezifischen Code aus dem Rest heraus. - Integrationen sind Python-Pakete, die sich über den Entry Point
label_hub.integrationsanmelden. Ein Plugin bietet einlookup(identifier), das die Etikettendaten zurückgibt; die mitgelieferten Plugins für Snipe-IT, Grocy und Spoolman sind die Vorbilder. Plugins von Dritten installierst du mitpipneben dem Hub, ohne dieses Repository zu ändern.
Wie du eine Entwicklungsumgebung einrichtest und eine Änderung einreichst: Mitmachen.