Aller au contenu principal

Monitoring d'utilisation

Interface web uniquement — pas accessible par clé API

Le tableau de bord d'utilisation est accessible exclusivement depuis le dashboard web MonCréneau, par un utilisateur STAFF (rôle ADMIN ou OWNER) connecté par session.

Une application tierce externe ne peut pas appeler ces endpoints. Ils sont authentifiés par cookie de session (login web), pas par clé API (X-API-Key). Cette page décrit le comportement pour référence, pas comme une intégration possible depuis votre code.

Accès requis​

  • Connexion authentifiée via l'interface web (cookie de session)
  • Rôle ADMIN ou OWNER

Statistiques globales​

GET /api/staff/api-usage/stats?period=week — period vaut today, week, month, ou custom (avec startDate/endDate au format YYYY-MM-DD).

Réponse 200 :

{
"totalCalls": 15420,
"successRate": 99.2,
"avgResponseTime": 245,
"totalCreditsConsumed": 1830,
"topEndpoints": [
{ "endpoint": "/api/v1/appointments", "calls": 8340, "percentage": 54.1 },
{ "endpoint": "/api/v1/departments", "calls": 4210, "percentage": 27.3 }
],
"errorBreakdown": { "402": 45, "404": 12, "429": 8 },
"timeSeriesData": [
{ "timestamp": "2026-01-22T00:00:00", "calls": 620, "credits": 74 }
]
}

Logs détaillés​

GET /api/staff/api-usage/logs?page=0&size=50 — filtres optionnels : apiKeyId, endpoint, statusCode, startDate, endDate (YYYY-MM-DDTHH:mm:ss).

Réponse 200 (page Spring Data standard) :

{
"content": [
{
"id": 98213,
"apiKeyName": "Production API Key",
"endpoint": "/api/v1/appointments",
"method": "POST",
"statusCode": 201,
"creditsConsumed": 1,
"responseTimeMs": 320,
"timestamp": "2026-01-22T14:30:00",
"ipAddress": "197.149.178.10",
"userAgent": "moncreneau-node/2.1.0"
}
],
"totalElements": 15420,
"totalPages": 309,
"number": 0,
"size": 50
}

Export CSV​

GET /api/staff/api-usage/export/csv?startDate=2026-01-01&endDate=2026-01-31 — télécharge l'historique filtré au format CSV (plage maximale : 366 jours).