41 lines
1.0 KiB
Python
41 lines
1.0 KiB
Python
from fastapi import FastAPI
|
|
from pymongo import MongoClient
|
|
from fastapi.middleware.cors import CORSMiddleware
|
|
import os
|
|
|
|
app = FastAPI()
|
|
|
|
# Juste après la déclaration FastAPI()
|
|
# Ajouter le middleware CORS
|
|
origins = [
|
|
"http://localhost",
|
|
"http://localhost:80",
|
|
"http://frontend",
|
|
"http://frontend:80"
|
|
]
|
|
|
|
app.add_middleware(
|
|
CORSMiddleware,
|
|
allow_origins=origins, # Liste des origines autorisées
|
|
allow_credentials=True,
|
|
allow_methods=["*"],
|
|
allow_headers=["*"],
|
|
)
|
|
|
|
# Récupération des variables sans valeurs par défaut
|
|
mongo_service = os.environ["MONGO_SERVICE_NAME"]
|
|
mongo_port = os.environ["MONGO_PORT"]
|
|
mongo_uri = f"mongodb://{mongo_service}:{mongo_port}/"
|
|
client = MongoClient(mongo_uri)
|
|
db = client.memes_db
|
|
|
|
@app.get("/memes")
|
|
def get_memes():
|
|
memes = list(db.memes.find({}, {"_id": 0}))
|
|
return {"memes": memes}
|
|
|
|
@app.post("/memes")
|
|
def create_meme(title: str, url: str):
|
|
meme = {"title": title, "url": url}
|
|
db.memes.insert_one(meme)
|
|
return {"message": "Meme added successfully"} |