Add base backend api root page
Signed-off-by: Felipe Cardoso <felipe.cardoso@hotmail.it>
This commit is contained in:
@@ -1,3 +1,7 @@
|
|||||||
|
import platform
|
||||||
|
from datetime import datetime, timezone
|
||||||
|
|
||||||
|
import psutil
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
from fastapi.middleware.cors import CORSMiddleware
|
from fastapi.middleware.cors import CORSMiddleware
|
||||||
|
|
||||||
@@ -24,6 +28,32 @@ app.include_router(training.router, prefix=f"{settings.API_VER_STR}/training", t
|
|||||||
app.include_router(samples.router, prefix=f"{settings.API_VER_STR}/samples", tags=["samples"])
|
app.include_router(samples.router, prefix=f"{settings.API_VER_STR}/samples", tags=["samples"])
|
||||||
|
|
||||||
|
|
||||||
|
@app.get("/")
|
||||||
|
async def root():
|
||||||
|
"""
|
||||||
|
Root endpoint providing API status and system information
|
||||||
|
"""
|
||||||
|
return {
|
||||||
|
"name": "Training Monitor API",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"status": "operational",
|
||||||
|
"timestamp": datetime.now(timezone.utc).isoformat(),
|
||||||
|
"system_info": {
|
||||||
|
"cpu_usage": f"{psutil.cpu_percent()}%",
|
||||||
|
"memory_usage": f"{psutil.virtual_memory().percent}%",
|
||||||
|
"platform": platform.platform(),
|
||||||
|
"python": platform.python_version(),
|
||||||
|
},
|
||||||
|
"endpoints": {
|
||||||
|
"docs": "/docs",
|
||||||
|
"health": "/health",
|
||||||
|
"training_status": "/api/v1/training/status",
|
||||||
|
"training_log": "/api/v1/training/log",
|
||||||
|
"samples_list": "/api/v1/samples/list",
|
||||||
|
"samples_latest": "/api/v1/samples/latest"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@app.get("/health")
|
@app.get("/health")
|
||||||
async def health_check():
|
async def health_check():
|
||||||
return {"status": "healthy"}
|
return {"status": "healthy"}
|
||||||
|
|||||||
@@ -10,4 +10,5 @@ python-dotenv>=1.0.0
|
|||||||
aiofiles>=23.2.1
|
aiofiles>=23.2.1
|
||||||
pytest>=7.4.3
|
pytest>=7.4.3
|
||||||
httpx>=0.25.1
|
httpx>=0.25.1
|
||||||
pytest-asyncio>=0.21.1
|
pytest-asyncio>=0.21.1
|
||||||
|
psutil>=5.9.8
|
||||||
Reference in New Issue
Block a user