feat(api): renomme le param réservé count en count_results (#78)

- Renomme RESERVED_PARAMS dans src/api/filters.py
- Fait passer le paramètre de 'count' à 'count_results' dans src/api/routes.py
- Met à jour la documentation swagger pour le nouveau nom

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Colin Maudry
2026-06-22 13:50:12 +02:00
parent 5166c88b8b
commit f5db674e22
5 changed files with 11 additions and 10 deletions
+1 -1
View File
@@ -17,7 +17,7 @@ OPERATORS = {
"sort",
}
RESERVED_PARAMS = {"page", "page_size", "columns", "count"}
RESERVED_PARAMS = {"page", "page_size", "columns", "count_results"}
class FilterError(ValueError):
+5 -5
View File
@@ -114,10 +114,10 @@ def schema():
"description": "Liste de colonnes à retourner, séparées par des virgules (ex: `id,acheteur_id,montant`). Par défaut : toutes.",
},
{
"name": "count",
"name": "count_results",
"in": "query",
"schema": {"type": "string", "enum": ["true", "false"], "default": "true"},
"description": "Inclure le total (`COUNT(*)`) dans la réponse. Mettre `false` pour accélérer la requête.",
"description": "Inclure le total (`COUNT(*)`) dans `meta`. Mettre `false` pour accélérer la requête. Ignoré en mode agrégation.",
},
{
"name": "<colonne>__<opérateur>",
@@ -142,14 +142,14 @@ def data():
strictly_less, strictly_greater, in, notin, isnull, isnotnull, sort.
Paramètres réservés : page (défaut 1), page_size (défaut 50, max 1000),
columns (csv), count (true|false ; mettre false pour économiser le COUNT(*)).
columns (csv), count_results (true|false ; mettre false pour économiser le COUNT(*)).
"""
import polars as pl
import polars.selectors as cs
page, page_size = _parse_pagination()
columns = _parse_columns()
count = request.args.get("count", "true").lower() != "false"
count_results = request.args.get("count_results", "true").lower() != "false"
try:
where_sql, params, order_sql = build_where(
@@ -170,7 +170,7 @@ def data():
# JSON ne sérialise pas date/datetime nativement → cast en string ISO
df_ready = df.with_columns(cs.temporal().cast(pl.String))
total = count_marches(where_sql, params) if count else None
total = count_marches(where_sql, params) if count_results else None
meta = {"page": page, "page_size": page_size}
if total is not None:
meta["total"] = total