Newer
Older
"""
FastAPI main application for queueing network simulation.
"""
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from .api import simulation, scenarios, analytics
app = FastAPI(
title="Queueing Network Simulation API",
description="Distributed database simulation using queueing theory with analytical validation",
version="1.0.0",
docs_url="/docs",
redoc_url="/redoc"
)
# Configure CORS
app.add_middleware(
CORSMiddleware,
allow_origins=["http://localhost:5173", "http://localhost:3000"], # React dev servers
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# Include routers
app.include_router(simulation.router)
app.include_router(scenarios.router)
app.include_router(analytics.router)
@app.get("/")
async def root():
"""Root endpoint - API health check."""
return {
"message": "Queueing Network Simulation API",
"status": "running",
"version": "1.0.0",
"docs": "/docs",
"endpoints": {
"simulation": "/api/simulation",
"scenarios": "/api/scenarios",
"analytics": "/api/analytics"
}
}
@app.get("/health")
async def health_check():
"""Health check endpoint."""
return {"status": "healthy"}
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000, reload=True)