main.py 1,37 ko
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)