API: documentation OpenAPI et CHANGELOG (#78)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Colin Maudry
2026-05-13 14:37:21 +02:00
parent 985af0fdc7
commit c683034e2b
2 changed files with 26 additions and 1 deletions
+16
View File
@@ -1,3 +1,19 @@
## [Unreleased]
### Ajouté
- API privée tabulaire `/api/v1/data` (filtres dynamiques, pagination, tri).
- Endpoint `/api/v1/schema` (description du dataset).
- Endpoint `/api/v1/health` (sonde monitoring).
- Documentation interactive Swagger UI à `/api/v1/swagger`.
- CLI d'administration des tokens : `python -m src.api.tokens_cli` (create, list, revoke).
- Suivi de consommation : compteurs SQLite (`api_tokens.count_total`, `last_used_at`) + événements Matomo async.
### Configuration
- Nouvelles variables d'environnement : `USERS_DB_PATH`, `MATOMO_URL`, `MATOMO_SITE_ID`, `MATOMO_TRACKING_ENABLED`.
- Création de 2 Custom Dimensions côté Matomo : `dimension1=token_id`, `dimension2=http_status`.
##### 2.7.7 (11 mai 2026)
- Suppression des mentions sur les profils d'acheteur. Omnikles/Safetender publie via l'API DUME et Klekoon ne publie pas, mais c'est peut-être pas le seul, donc je préfère supprimer et refaire un tour.
+10 -1
View File
@@ -95,7 +95,16 @@ def schema():
@bp.route("/data")
@require_token
def data():
"""Endpoint tabulaire : filtres dynamiques sur les colonnes DECP."""
"""Récupère des marchés publics filtrés.
Filtres en query string sous la forme `<colonne>__<opérateur>=<valeur>`.
Opérateurs : exact, contains, notcontains, less, greater,
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(*)).
"""
import polars as pl
import polars.selectors as cs