File size: 1,017 Bytes
457a7b3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
from fastapi import FastAPI, Query
from typing import List
from app import database
from fastapi.middleware.cors import CORSMiddleware

app = FastAPI(
    title="Articles API",
    description="API pour récupérer articles et tags depuis SQLite",
    version="1.0"
)

# CORS pour permettre l'accès depuis le navigateur
app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"],  # autorise toutes les origines
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

@app.get("/get_tags")
def get_tags():
    """

    Retourne la liste de tous les tags

    """
    tags = database.fetch_tags()
    return {"tags": tags}

@app.get("/get_articles_with_tags")
def get_articles_with_tags(

    tags: List[str] = Query(..., description="Liste des tags à filtrer")

):
    """

    Retourne les articles correspondant aux tags donnés

    """
    articles = database.fetch_articles_by_tags(tags)
    return {"tags": tags,
            "articles": articles}