|
|
"""FastAPI application entry point.""" |
|
|
|
|
|
import logging |
|
|
from fastapi import FastAPI |
|
|
from fastapi.middleware.cors import CORSMiddleware |
|
|
|
|
|
from api.schemas.response_schemas import HealthResponse |
|
|
from api.routes import optim_router, dxf_router |
|
|
|
|
|
|
|
|
logging.basicConfig( |
|
|
level=logging.INFO, |
|
|
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' |
|
|
) |
|
|
logger = logging.getLogger(__name__) |
|
|
|
|
|
app = FastAPI( |
|
|
title="Land Redistribution Algorithm API", |
|
|
description="API for testing land subdivision and redistribution algorithms", |
|
|
version="2.0.0" |
|
|
) |
|
|
|
|
|
|
|
|
app.add_middleware( |
|
|
CORSMiddleware, |
|
|
allow_origins=["*"], |
|
|
allow_credentials=True, |
|
|
allow_methods=["*"], |
|
|
allow_headers=["*"], |
|
|
) |
|
|
|
|
|
|
|
|
app.include_router(optim_router, prefix="/api") |
|
|
app.include_router(dxf_router, prefix="/api") |
|
|
|
|
|
|
|
|
@app.get("/health", response_model=HealthResponse) |
|
|
async def health_check(): |
|
|
"""Health check endpoint.""" |
|
|
return HealthResponse(status="healthy", version="2.0.0") |
|
|
|
|
|
|
|
|
@app.get("/") |
|
|
async def root(): |
|
|
"""Root endpoint with API information.""" |
|
|
return { |
|
|
"message": "Land Redistribution Algorithm API", |
|
|
"version": "2.0.0", |
|
|
"docs": "/docs", |
|
|
"health": "/health" |
|
|
} |
|
|
|
|
|
|
|
|
@app.on_event("startup") |
|
|
async def startup_event(): |
|
|
"""Log startup information.""" |
|
|
logger.info("Land Redistribution API started (v2.0.0 - Modular Architecture)") |
|
|
|