# Imports
import requests
import stouputils as stp
import os
from typing import Literal, Any
from flask import Flask, request, jsonify
# Constants
ROOT: str = stp.clean_path(os.path.dirname(os.path.abspath(__file__)))
API_URL: str = "https://data.enseignementsup-recherche.gouv.fr/api/explore/v2.1/catalog/datasets/fr-esr-parcours-et-reussite-des-bacheliers-en-licence"
# Flask app
app: Flask = Flask(__name__)
# Fonction pour récupérer les données de l'API
[docs]
def fetch_data(query: str) -> list[dict]:
""" Lance la requĂȘte Ă l'API et retourne les rĂ©sultats.
La limite des requĂȘtes est de 100 rĂ©sultats par requĂȘte, il faut donc parfois faire plusieurs requĂȘtes pour rĂ©cupĂ©rer tous les rĂ©sultats.
Args:
query (str): la requĂȘte Ă envoyer Ă l'API
Returns:
list: la liste des résultats
"""
offset = 0
results = []
while True:
response = requests.get(f"{API_URL}/records?{query}&limit=100&offset={offset}").json()
results += response["results"]
if len(response["results"]) < 100:
break
offset += 100
return results