API auf Raspberry Pi (Modul 295)¶
Diese Dokumentation beschreibt die Erstellung, Containerisierung und Bereitstellung einer REST-API auf einem Raspberry Pi mittels Docker.
Projektübersicht¶
Das Ziel war es, eine API mit personalisierten Fake-Daten zu erstellen, die innerhalb eines Docker-Containers auf einem Raspberry Pi läuft. Die API liefert Daten im JSON-Format zurück.
| Eigenschaft | Wert |
|---|---|
| Abgabedatum | 11. Februar 2026 |
| Technologien | Python (Flask), Docker, SSH |
| Hardware | Raspberry Pi 4 |
1. System-Zugang & Umgebung¶
Die Verbindung zum Raspberry Pi wurde über SSH im lokalen Netzwerk hergestellt.
| Parameter | Wert |
|---|---|
| SSH-Befehl | ssh m295@10.27.160.12 |
| Passwort | m295 |
| Projektverzeichnis | ~/api-projekt |
2. Implementierung¶
A. Die API (app.py)¶
Wir haben das Python-Microframework Flask verwendet, um einen Endpunkt zu definieren, der personalisierte JSON-Daten zurückgibt.
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/api/m295', methods=['GET'])
def get_fake_data():
return jsonify({
"status": "success",
"author": "DEIN NAME", # Hier deinen echten Namen eintragen!
"module": "m295 - API Integration",
"data": [
{"id": 101, "item": "Raspberry Pi 4", "status": "online"},
{"id": 102, "item": "Docker Container", "status": "running"},
{"id": 103, "item": "JSON API", "status": "active"}
]
})
if __name__ == '__main__':
# host 0.0.0.0 ist wichtig, damit die API von außen erreichbar ist
app.run(host='0.0.0.0', port=5000)
Hinweis
Der Parameter host='0.0.0.0' ist wichtig, damit die API von außerhalb des Containers erreichbar ist.
B. Docker-Konfiguration (Dockerfile)¶
Um die API unabhängig von der lokalen Python-Installation des Raspberry Pi zu betreiben, wurde ein Docker-Image erstellt.
# Basis-Image: Schlankes Python 3.9
FROM python:3.9-slim
# Arbeitsverzeichnis festlegen
WORKDIR /app
# Abhängigkeiten installieren
RUN pip install flask
# Quellcode in den Container kopieren
COPY app.py .
# Port 5000 für den Zugriff nach außen öffnen
EXPOSE 5000
# Startbefehl
CMD ["python", "app.py"]
3. Deployment-Prozess¶
Die Bereitstellung erfolgte über die Kommandozeile des Raspberry Pi in drei Schritten:
Schritt 1: Dateien erstellen¶
Mit nano wurden die app.py und das Dockerfile im Ordner ~/api-projekt angelegt.
Schritt 2: Image Build¶
Schritt 3: Container Run¶
Parameter erklärt
-d→ Container läuft im Hintergrund (detached)-p 5000:5000→ Port-Mapping (Host:Container)--name→ Benennt den Container
4. Verifizierung & Test¶
Nach dem Start des Containers konnte die API erfolgreich über den Webbrowser oder curl aufgerufen werden.
Test-URL¶
Test-Befehl¶
Ergebnis
Der Webserver antwortet korrekt mit dem HTTP-Status 200 und liefert die definierten JSON-Daten aus. Die Docker-Umgebung kapselt die Anwendung erfolgreich ab.
Abschlussprüfung¶
- API erstellt
- Personalisierte Fake-Daten integriert
- Docker-Container läuft auf Raspberry Pi
- Abruf über Port 5000 möglich