Team13.4 / api /main.py
Xmaster6y's picture
initial setup
ab8b5a4
"""
Main API module.
"""
import logging
from contextlib import asynccontextmanager
from fastapi import FastAPI, Depends
from fastapi.middleware.cors import CORSMiddleware
from api.inference import router as inference_router
from api.requirements import router as requirements_router
from api import auth
from api.schema import SuccessDetail
@asynccontextmanager
async def lifespan(app: FastAPI):
logger = logging.getLogger("uvicorn")
logger.info(f"Starting up...")
yield
logger.info(f"Shutting down...")
app = FastAPI(
title="Team 13 API",
lifespan=lifespan,
)
origins = ["*"]
app.add_middleware(
CORSMiddleware,
allow_origins=origins,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
@app.get(
"/",
tags=["HOME"],
summary="Home page",
status_code=200,
response_model=SuccessDetail,
)
async def home():
"""
Home page.
"""
return {"success": "Welcome to yet another API!"}
app.include_router(
requirements_router.router,
prefix="/requirements",
tags=["REQUIREMENTS"],
dependencies=[Depends(auth.validate_api_key)],
)
app.include_router(
inference_router.router,
prefix="/inference",
tags=["INFERENCE"],
dependencies=[Depends(auth.validate_api_key)],
)