Files

43 lines
1.2 KiB
Python
Raw Permalink Normal View History

import logging
from contextlib import asynccontextmanager
from fastapi import FastAPI
from app.routers import image_editing, image_generation, system, tasks, utilities, video_generation
from app.services import file_manager, freepik_client
from app.services.webhook import router as webhook_router
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s %(levelname)s %(name)s: %(message)s',
)
logger = logging.getLogger(__name__)
@asynccontextmanager
async def lifespan(app: FastAPI):
logger.info('Starting Freepik API...')
file_manager.ensure_directories()
await freepik_client.create_client()
logger.info('Freepik API ready')
yield
logger.info('Shutting down...')
await freepik_client.close_client()
app = FastAPI(
title='Freepik API',
version='1.0.0',
description='REST API wrapping Freepik cloud AI services',
lifespan=lifespan,
)
app.include_router(image_generation.router)
app.include_router(video_generation.router)
app.include_router(image_editing.router)
app.include_router(utilities.router)
app.include_router(utilities.icon_router)
app.include_router(tasks.router)
app.include_router(system.router)
app.include_router(webhook_router)