from fastapi import FastAPI from fastapi.responses import JSONResponse from pydantic import BaseModel # Bleibt, da FastAPI es für Request Body Parsing nutzt # Deine FastAPI-Instanz app = FastAPI(title="Minimal FastAPI Test App") # Eine einfache Request-Modell-Klasse (auch wenn wir sie hier nicht wirklich nutzen, # zeigt es, dass Pydantic funktioniert) class TestRequest(BaseModel): message: str = "Hello" # Ein einfacher "Hello World"-Endpunkt, der auf POST-Anfragen reagiert @app.post("/test") async def test_api_endpoint(request_data: TestRequest): """ Ein einfacher Test-Endpunkt. Gibt eine Begrüßungsnachricht zurück, die die empfangene Nachricht enthält. """ print(f"INFO: Received test request with message: {request_data.message}") # Log für den Space return JSONResponse(content={"status": "success", "message": f"Hello from FastAPI! You sent: {request_data.message}"}) # Ein optionaler Root-Endpunkt (oft gut für Health-Checks) @app.get("/") async def read_root(): """ Root-Endpunkt für grundlegenden Health-Check. """ return {"message": "FastAPI is running!"} print("INFO: FastAPI application script finished execution and defined 'app' variable.") # Dieser Block wird in Hugging Face Spaces nicht direkt ausgeführt, da Uvicorn # die App direkt lädt, aber er ist für lokale Tests nützlich. if __name__ == "__main__": import uvicorn uvicorn.run(app, host="0.0.0.0", port=7860) # Lokaler Port 7860, wie in Space