Abonnés (points de terminaison)
Un abonné est une destination pour vos données : une URL, un type de données, un script de transformation facultatif. Tout ce qui concerne le trafic sortant se configure ici — Courier n'a aucun autre moyen d'envoyer des données où que ce soit.
Référence des champs
| Champ | Signification |
|---|---|
| Nom | Nom d'affichage, utilisé dans les registres, les notifications et context.endpointName |
| Type | Ce que cet abonné reçoit : workout, sleep, note (annotation) ou weather. Un abonné = un type |
| URL | La destination. HTTPS obligatoire (http://localhost en clair est autorisé pour les tests locaux) |
| Méthode | GET / POST / PUT / PATCH / DELETE — POST par défaut |
| En-têtes | En-têtes statiques, non secrets, envoyés avec chaque requête |
| Authentification | Comment le secret est joint : Bearer (Authorization: Bearer <secret>), en-tête personnalisé (vous nommez l'en-tête), paramètre de requête (vous nommez le paramètre), ou Aucune |
| Secret | Stocké dans le trousseau iOS, jamais dans la base de données ni dans les sauvegardes de configuration |
| Paramètres du corps | Paires clé–valeur statiques. Avec POST, elles sont fusionnées dans le corps JSON ; avec les autres méthodes, elles sont aplaties dans la chaîne de requête |
| Inclure le parcours | Entraînements uniquement : joindre la trace GPS (peut être volumineuse) |
| Inclure la série FC | Entraînements uniquement : joindre la série temporelle complète de fréquence cardiaque (volumineuse) |
| Envoi automatique | Livrer automatiquement quand de nouvelles données de ce type arrivent. Désactivé = cet abonné ne reçoit que les envois manuels ou groupés |
| Météo liée | Abonnés sommeil uniquement : après un envoi de sommeil réussi, envoyer aussi la météo actuelle à l'abonné météo sélectionné |
| Météo une fois par jour | Avec la météo liée : seul le premier sommeil de la journée porte la météo (les siestes ne la renvoient pas) |
| Script de transformation | JavaScript facultatif qui construit le corps de la requête — voir Transformation JavaScript |
À quoi ressemble la requête
Sans script de transformation, le corps est l'enregistrement canonical du type — un document JSON stable et versionné (schémas dans Transformation JavaScript) — avec vos paramètres de corps fusionnés dedans. Chaque requête porte aussi un en-tête Idempotency-Key ; voir Envoi et synchronisation pour la sémantique exacte.
Les réponses 2xx comptent comme des succès. Tout autre statut, et l'élément entre dans le flux réessai/à traiter, la réponse étant consignée dans l'historique d'envoi.
Tester un abonné
Le bouton Tester de l'éditeur fait passer un enregistrement d'exemple récent par la chaîne complète — y compris votre script de transformation, l'authentification et les en-têtes — et affiche dans l'app le statut HTTP et le corps de la réponse. Utilisez-le jusqu'à ce que votre serveur soit satisfait, puis activez l'envoi automatique.
Schémas d'usage
- Même URL, deux types : ajoutez deux abonnés pointant vers le même point de terminaison, l'un pour les entraînements, l'autre pour le sommeil. Votre serveur peut aiguiller selon la charge utile.
- Journal météo : créez un abonné
weather, puis liez-le depuis votre abonné sommeil — chaque envoi du matin porte la météo du jour à côté du sommeil de la nuit. - Diffusion multiple : autant d'abonnés que vous voulez peuvent recevoir le même type ; chaque envoi est suivi séparément, et un point de terminaison défaillant n'en bloque jamais un autre.