Skip to main content

Format des erreurs

Toutes les erreurs retournent un objet JSON avec un champ message :
{
  "message": "Description de l'erreur"
}

Codes HTTP

CodeSignificationQuand
200OKRequete reussie
201CreatedRessource creee (ex: rendez-vous)
400Bad RequestRequete invalide (champs manquants, format incorrect)
401UnauthorizedCle API manquante, invalide ou expiree
403ForbiddenPermission manquante sur la cle
404Not FoundRessource introuvable
409ConflictConflit (ex: creneau deja occupe)
429Too Many RequestsLimite de requetes depassee
500Internal Server ErrorErreur serveur

Exemples

401 - Cle invalide

curl -H "X-API-Key: vk_cle_invalide" \
  https://api.treats.vet/api/v1/patients
{
  "message": "Invalid or expired API key"
}

403 - Permission manquante

Votre cle a PATIENT_READ mais pas CLIENT_READ :
curl -H "X-API-Key: vk_votre_cle" \
  https://api.treats.vet/api/v1/clients
{
  "message": "Insufficient permissions"
}

404 - Ressource introuvable

curl -H "X-API-Key: vk_votre_cle" \
  https://api.treats.vet/api/v1/patients/00000000-0000-0000-0000-000000000000
{
  "message": "Resource not found"
}

429 - Rate limit

{
  "message": "Rate limit exceeded. Please try again later.",
  "retryAfter": 42
}
Headers :
Retry-After: 42
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 0

Conseils

Gerez toujours les erreurs 401 et 429 dans votre code. Le 401 peut indiquer une cle expiree a renouveler, et le 429 necessite un mecanisme de retry.