diff --git a/api-backend_blueprint/README.md b/api-backend_blueprint/README.md new file mode 100644 index 0000000..380bc5d --- /dev/null +++ b/api-backend_blueprint/README.md @@ -0,0 +1,106 @@ +# 🖨️ 3D-Drucker Status API 📊 + +Willkommen beim Blueprint der 3D-Drucker Status API! Diese API ermöglicht es Ihnen, den Status mehrerer über LAN verbundener 3D-Drucker zu überwachen und Druckaufträge an sie zu senden. + +## 🌟 Funktionen + +- 🔍 Abrufen des Status von 3D-Druckern, einschließlich ihres aktuellen Status, Fortschrittes und Temperatur. +- 📥 Senden von Druckaufträgen an verfügbare 3D-Drucker. +- 💾 Speichern und Aktualisieren des Status jedes Druckers in einer SQLite-Datenbank. + +## 🛠️Verwendete Technologien + +- 🐍 Python +- 🌶️ Flask +- 🗄️ SQLite +- 🌐 HTTP-Anfragen + +## 📋 Verordnungen + +Bevor Sie die API starten, stellen Sie sicher, dass Sie folgendes haben: + +- Python 3.x installiert +- Flask und python-dotenv-Bibliotheken installiert (`pip install flask python-dotenv`) +- Eine Liste von IP-Adressen der 3D-Drucker, die Sie überwachen möchten + +## 🚀 Erste Schritte + +1. Klonen Sie das Repository: + ``` + git clone https://git.i.mercedes-benz.com/TBA-Berlin-FI/MYP + ``` + +2. Installieren Sie die erforderlichen Abhängigkeiten: + ``` + pip install -r requirements.txt + ``` + +3. Erstellen Sie eine `.env`-Datei im Projektverzeichnis und geben Sie die IP-Adressen Ihrer 3D-Drucker an: + ``` + PRINTER_IPS=192.168.0.10,192.168.0.11,192.168.0.12 + ``` + +4. Starten Sie das Skript, um die SQLite-Datenbank zu erstellen: + ``` + python create_db.py + ``` + +5. Starten Sie den API-Server: + ``` + python app.py + ``` + +6. Die API ist unter `http://localhost:5000` erreichbar. + +## 📡 API-Endpunkte + +- `GET /printer_status`: Rufen Sie den Status aller 3D-Drucker ab. +- `POST /print_job`: Senden Sie einen Druckauftrag an einen bestimmten 3D-Drucker. + +## 📝 API-Nutzung + +### Druckerstatus abrufen + +Senden Sie eine `GET`-Anfrage an `/printer_status`, um den Status aller 3D-Drucker abzurufen. + +Antwort: +```json +[ + { + "ip": "192.168.0.10", + "status": "frei", + "progress": 0, + "temperature": 25 + }, + { + "ip": "192.168.0.11", + "status": "besetzt", + "progress": 50, + "temperature": 180 + }, + ... +] +``` + +### Druckauftrag senden + +Senden Sie eine `POST`-Anfrage an `/print_job` mit der folgenden JSON-Last, um einen Druckauftrag an einen bestimmten 3D-Drucker zu senden: + +```json +{ + "printer_ip": "192.168.0.10", + "file_url": "http://example.com/print_file.gcode" +} +``` + +Antwort: +```json +{ + "message": "Druckauftrag gestartet" +} +``` + + +## 📄 Lizenz + +- --> Noch nicht verfügbar