Team13.4 / api /main.py
Xmaster6y's picture
initial setup
ab8b5a4
raw
history blame
1.3 kB
"""
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)],
)