Check-list de conformité
Deux listes complémentaires : les engagements du contrat à respecter dans votre code, et les tests concrets à dérouler contre votre implémentation — tous passent contre la démo de référence.
Conformité au contrat
- Base path exact
/api/apiborneIntegrationService/v1/, JSON camelCase, dates ISO 8601. - Les 2 headers d'auth validés sur toutes les routes (401 typés, device d'abord).
context.confighonoré ; aucun appel sortant vers le serveur ApiBorne pendant un parcours.- Propriétés inconnues de
context.config.*ignorées silencieusement. - Erreurs au format
{ "error": { code, message, details } }avec les statuts du contrat. - Identifiants opaques stables pendant tout un parcours ; un
appointment.idne doit jamais valoir littéralementby-code(collision de route). identify: tous critères combinés, NIR prioritaire,patients: []si rien.- Upload : ≥ 10 Mo acceptés, réponse en moins de 60 s, 413 typé au-delà de votre limite.
- Check-in idempotent (rejeu après timeout → même ticket).
notification-readinessrépond toujours (au pire{ "ready": true }).- Les extensions passent par
vendorData— la spec de référence n'est jamais modifiée.
Tests exécutables
Comment dérouler ces tests (curl en local, ngrok, sonde config-check, banc de test des endpoints de l'admin avec vos propres entrées) : voir le guide Tester votre implémentation.
identifysans headers →401avec un corps normalisé.identifyavec un NIR contenant des espaces → le patient est trouvé.by-codeavec un code inconnu →404 UNKNOWN_APPOINTMENT.check-inavec unproposedTicket→ la réponse reprend ce ticket.- Le même
check-inrejoué →200avec le même ticket (pas de doublon). check-ind'un RDV terminé/annulé →409 ALREADY_CHECKED_IN.- Upload au-delà de votre limite →
413 UPLOAD_TOO_LARGE. PUT statusen arrière (inCare → checkedIn) →200sans effet.staff/sign-inavec de mauvais identifiants →401 INVALID_CREDENTIALS.
Ces neuf tests passent tous contre l'implémentation de référence : lancez-la en local (port 3020) et comparez vos réponses aux siennes, à l'octet près.
