From a7594df5cf0d66c134eb5901792f9131d9943f48 Mon Sep 17 00:00:00 2001 From: michivonah Date: Wed, 16 Apr 2025 11:15:49 +0200 Subject: [PATCH] implement https & healtcheck endpoint --- db/create_db.sql | 2 +- webservice/Dockerfile.txt | 4 +++- webservice/webservice.py | 9 +++++++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/db/create_db.sql b/db/create_db.sql index 87f4fbd..ad78ae2 100644 --- a/db/create_db.sql +++ b/db/create_db.sql @@ -15,7 +15,7 @@ CREATE TABLE "sensor_data"( id INTEGER GENERATED BY DEFAULT AS IDENTITY, timestamp TIMESTAMP, humidity DECIMAL(5,3), - pressure DECIMAL(5,3), + pressure DECIMAL(7,3), temperature DECIMAL(5,3), voc DECIMAL(5,3), gas DECIMAL(5,3), diff --git a/webservice/Dockerfile.txt b/webservice/Dockerfile.txt index 809a995..aff37c9 100644 --- a/webservice/Dockerfile.txt +++ b/webservice/Dockerfile.txt @@ -23,6 +23,8 @@ COPY webservice.py . COPY crypto.py . COPY dbfunctions.py . COPY models.py . +COPY certs/key.pem . +COPY certs/cert.pem . # Start app -CMD ["uvicorn", "webservice:app", "--host", "0.0.0.0", "--port", "8080"] \ No newline at end of file +CMD ["uvicorn", "webservice:app", "--host", "0.0.0.0", "--port", "8080", "--ssl-keyfile=key.pem", "--ssl-certfile=cert.pem"] \ No newline at end of file diff --git a/webservice/webservice.py b/webservice/webservice.py index ae7937a..7713681 100644 --- a/webservice/webservice.py +++ b/webservice/webservice.py @@ -14,7 +14,7 @@ app = FastAPI( title="BBZW-Horizon", description="BBZW-Horizon ist ein Tool, welches entwickelt wurde, um durch die Erfassung und Auswertung von Luftqualitätsmesswerten die Luftqualität in den Schulzimmern des BBZW Sursee zu verbessern. Bei dieser API handelt es sich um die Kommunikationsschnittstelle, zwischen den Arduinos, welche mit Sensoren die Daten erfassen und an die API senden. Diese API speichert die Daten dann in der Datenbank, damit diese durch das Frontend abgerufen und visualisiert werden können.", summary="Die BBZW-Horizon API dient als Kommunikationsschnittstelle, um Luftqualitätsmesswerte von Arduinos, die mit Sensoren ausgestattet sind, zu erfassen", - version="0.0.3" + version="0.0.4" ) # DB Session @@ -113,4 +113,9 @@ async def get_recent_sensor_data_endpoint( if not recent_data: raise HTTPException(status_code=404, detail="No sensor data found in the specified time range.") - return recent_data # Rückgabe als JSON \ No newline at end of file + return recent_data # Rückgabe als JSON + +@app.get("/health", response_model=MessageOnly, tags=["health"]) +async def health_check(): + """Einfacher Healthcheck-Endpoint, der 'OK' zurückgibt.""" + return MessageOnly(message="OK") \ No newline at end of file