7b1b6521e5
- Upload photo (context=product → thumbnail 150×150) dans CatalogueModal - Miniature affichée dans la liste et dans le formulaire - Schémas ProductCreate/Update/Response exposent image_path + thumbnail_path - Backend sert /media/* via StaticFiles (FastAPI) - Proxy /media → backend dans vite.config et nginx.conf Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
35 lines
1.0 KiB
Python
35 lines
1.0 KiB
Python
from contextlib import asynccontextmanager
|
|
from fastapi import FastAPI
|
|
from fastapi.middleware.cors import CORSMiddleware
|
|
from fastapi.staticfiles import StaticFiles
|
|
from app.api.health import router as health_router
|
|
from app.api.media import router as media_router
|
|
from app.api.todos import router as todos_router
|
|
from app.api.shopping import router as shopping_router
|
|
from app.core.config import settings
|
|
from app.data.seed import run_seed
|
|
|
|
|
|
@asynccontextmanager
|
|
async def lifespan(app: FastAPI):
|
|
await run_seed()
|
|
yield
|
|
|
|
|
|
app = FastAPI(title="HomeHub API", version="0.1.0", lifespan=lifespan)
|
|
|
|
app.add_middleware(
|
|
CORSMiddleware,
|
|
allow_origins=settings.cors_origins_list,
|
|
allow_credentials=True,
|
|
allow_methods=["*"],
|
|
allow_headers=["*"],
|
|
)
|
|
|
|
app.include_router(health_router, prefix="/api")
|
|
app.include_router(media_router, prefix="/api/media")
|
|
app.include_router(todos_router, prefix="/api/todos")
|
|
app.include_router(shopping_router, prefix="/api/shopping")
|
|
|
|
app.mount("/media", StaticFiles(directory=str(settings.upload_path)), name="media")
|