removed fastapi dep and added requirements
This commit is contained in:
@@ -2,6 +2,7 @@ from fastapi import FastAPI, APIRouter
|
|||||||
from dotenv import load_dotenv
|
from dotenv import load_dotenv
|
||||||
from starlette.middleware.cors import CORSMiddleware
|
from starlette.middleware.cors import CORSMiddleware
|
||||||
from motor.motor_asyncio import AsyncIOMotorClient
|
from motor.motor_asyncio import AsyncIOMotorClient
|
||||||
|
from contextlib import asynccontextmanager
|
||||||
import os
|
import os
|
||||||
import logging
|
import logging
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
@@ -19,13 +20,6 @@ mongo_url = os.environ['MONGO_URL']
|
|||||||
client = AsyncIOMotorClient(mongo_url)
|
client = AsyncIOMotorClient(mongo_url)
|
||||||
db = client[os.environ['DB_NAME']]
|
db = client[os.environ['DB_NAME']]
|
||||||
|
|
||||||
# Create the main app without a prefix
|
|
||||||
app = FastAPI()
|
|
||||||
|
|
||||||
# Create a router with the /api prefix
|
|
||||||
api_router = APIRouter(prefix="/api")
|
|
||||||
|
|
||||||
|
|
||||||
# Define Models
|
# Define Models
|
||||||
class StatusCheck(BaseModel):
|
class StatusCheck(BaseModel):
|
||||||
model_config = ConfigDict(extra="ignore") # Ignore MongoDB's _id field
|
model_config = ConfigDict(extra="ignore") # Ignore MongoDB's _id field
|
||||||
@@ -37,6 +31,16 @@ class StatusCheck(BaseModel):
|
|||||||
class StatusCheckCreate(BaseModel):
|
class StatusCheckCreate(BaseModel):
|
||||||
client_name: str
|
client_name: str
|
||||||
|
|
||||||
|
# Configure logging
|
||||||
|
logging.basicConfig(
|
||||||
|
level=logging.INFO,
|
||||||
|
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
|
||||||
|
)
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
# Create a router with the /api prefix
|
||||||
|
api_router = APIRouter(prefix="/api")
|
||||||
|
|
||||||
# Add your routes to the router instead of directly to app
|
# Add your routes to the router instead of directly to app
|
||||||
@api_router.get("/")
|
@api_router.get("/")
|
||||||
async def root():
|
async def root():
|
||||||
@@ -66,6 +70,19 @@ async def get_status_checks():
|
|||||||
|
|
||||||
return status_checks
|
return status_checks
|
||||||
|
|
||||||
|
# Define lifespan event handler
|
||||||
|
@asynccontextmanager
|
||||||
|
async def lifespan(app: FastAPI):
|
||||||
|
# Startup code here
|
||||||
|
logger.info("Application startup")
|
||||||
|
yield
|
||||||
|
# Shutdown code here
|
||||||
|
logger.info("Application shutdown")
|
||||||
|
client.close()
|
||||||
|
|
||||||
|
# Create the main app with lifespan handler
|
||||||
|
app = FastAPI(lifespan=lifespan)
|
||||||
|
|
||||||
# Include the router in the main app
|
# Include the router in the main app
|
||||||
app.include_router(api_router)
|
app.include_router(api_router)
|
||||||
|
|
||||||
@@ -76,15 +93,3 @@ app.add_middleware(
|
|||||||
allow_methods=["*"],
|
allow_methods=["*"],
|
||||||
allow_headers=["*"],
|
allow_headers=["*"],
|
||||||
)
|
)
|
||||||
|
|
||||||
# Configure logging
|
|
||||||
logging.basicConfig(
|
|
||||||
level=logging.INFO,
|
|
||||||
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
|
|
||||||
)
|
|
||||||
logger = logging.getLogger(__name__)
|
|
||||||
|
|
||||||
@app.on_event("shutdown")
|
|
||||||
async def shutdown_db_client():
|
|
||||||
client.close()
|
|
||||||
|
|
||||||
|
|||||||
10
app/requirements.txt
Normal file
10
app/requirements.txt
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
fastapi
|
||||||
|
dotenv
|
||||||
|
starlette
|
||||||
|
motor
|
||||||
|
#os
|
||||||
|
logging
|
||||||
|
pathlib
|
||||||
|
pydantic
|
||||||
|
typing
|
||||||
|
datetime
|
||||||
Reference in New Issue
Block a user