whisper.api / app /main.py
Ved Gupta
typo fixed
a221d93
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import RedirectResponse
from app.api import api_router
from app.core.config import settings
from app.core.errors import error_handler
from app.api.models.ping import PingResponse
from app.utils import print_routes
from app.utils.checks import run_checks
if not run_checks():
raise Exception("Failed to pass all checks")
app = FastAPI(
title=settings.PROJECT_NAME, openapi_url=f"{settings.API_V1_STR}/openapi.json"
)
# Set all CORS enabled origins
if settings.BACKEND_CORS_ORIGINS:
app.add_middleware(
CORSMiddleware,
allow_origins=[str(origin) for origin in settings.BACKEND_CORS_ORIGINS],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
@app.get("/", include_in_schema=False)
async def redirect_to_docs():
return RedirectResponse(url="/docs")
@app.get("/ping", tags=["ping"], response_model=PingResponse)
async def ping():
return {"ping": "pong"}
# Include routers
app.include_router(api_router, prefix=settings.API_V1_STR)
# # Error handlers
app.add_exception_handler(500, error_handler)
# Print all routes
print_routes(app)