Files
sejeteralo/backend/app/main.py
syoul 017806025c
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
fix: redirect_slashes=False pour éviter les 307 avec IPs Docker internes
FastAPI redirige /communes → /communes/ avec l'IP container dans le
Location header, inaccessible depuis le navigateur via Fabio.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 12:41:10 +01:00

44 lines
1.2 KiB
Python

from contextlib import asynccontextmanager
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from app.config import settings
from app.database import init_db
from app.routers import auth, communes, content, tariff, votes, households
@asynccontextmanager
async def lifespan(app: FastAPI):
await init_db()
yield
app = FastAPI(
title=settings.APP_NAME,
description="Outil de démocratie participative pour la tarification de l'eau",
version="0.1.0",
lifespan=lifespan,
redirect_slashes=False,
)
app.add_middleware(
CORSMiddleware,
allow_origins=settings.CORS_ORIGINS,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
app.include_router(auth.router, prefix="/api/v1/auth", tags=["auth"])
app.include_router(communes.router, prefix="/api/v1/communes", tags=["communes"])
app.include_router(tariff.router, prefix="/api/v1/tariff", tags=["tariff"])
app.include_router(votes.router, prefix="/api/v1", tags=["votes"])
app.include_router(households.router, prefix="/api/v1", tags=["households"])
app.include_router(content.router, prefix="/api/v1/communes", tags=["content"])
@app.get("/api/health")
async def health():
return {"status": "ok"}