import os from fastapi import FastAPI, HTTPException from fastapi.middleware.cors import CORSMiddleware import MySQLdb from dotenv import load_dotenv from routers import skills load_dotenv() app = FastAPI() origins = [ "http://localhost", "http://localhost:5173", ] app.add_middleware( CORSMiddleware, allow_origins=origins, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) def get_db_connection(): try: conn = MySQLdb.connect( user=os.getenv("DB_USER"), passwd=os.getenv("DB_PASS"), host=os.getenv("DB_HOST"), db=os.getenv("DB_NAME"), charset='utf8mb4', cursorclass=MySQLdb.cursors.DictCursor ) return conn except MySQLdb.Error as e: print(f"Erreur de connexion à la base de données : {e}") raise HTTPException(status_code=500, detail="Erreur interne du serveur lors de la connexion à la base de données.") @app.get("/") def read_root(): return {"status": "API Portfolio fonctionnelle !"} app.include_router( skills.router, prefix="/api/skills", tags=["Skills"] )