43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
|
|
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)
|