Abonnenten (Endpunkte)
Ein Abonnent ist ein Ziel für deine Daten: eine URL, eine Datenart, ein optionales Transformations-Skript. Alles, was ausgehenden Datenverkehr betrifft, wird hier konfiguriert — Courier hat keinen anderen Weg, Daten irgendwohin zu senden.
Feldreferenz
| Feld | Bedeutung |
|---|---|
| Name | Anzeigename, verwendet im Journal, in Mitteilungen und in context.endpointName |
| Art | Was dieser Abonnent empfängt: workout, sleep, note (Anmerkung) oder weather. Ein Abonnent = eine Art |
| URL | Das Ziel. HTTPS ist Pflicht (unverschlüsseltes http://localhost ist für lokale Tests erlaubt) |
| Methode | GET / POST / PUT / PATCH / DELETE — Standard POST |
| Header | Statische, nicht geheime Header, die mit jeder Anfrage gesendet werden |
| Auth | Wie das Geheimnis angehängt wird: Bearer (Authorization: Bearer <secret>), eigener Header (du benennst den Header), Query-Parameter (du benennst den Parameter) oder Keine |
| Geheimnis | Wird im iOS-Schlüsselbund gespeichert, nie in der Datenbank und nie in Konfigurations-Backups |
| Body-Parameter | Statische Schlüssel-Wert-Paare. Bei POST werden sie in den JSON-Body gemischt; bei anderen Methoden werden sie in den Query-String übernommen |
| Route einschließen | Nur Workouts: den GPS-Track anhängen (kann groß werden) |
| HF-Serie einschließen | Nur Workouts: die vollständige Herzfrequenz-Zeitreihe anhängen (groß) |
| Auto-Versand | Automatisch zustellen, wenn neue Daten dieser Art eintreffen. Aus = dieser Abonnent erhält nur manuelle bzw. Stapel-Versände |
| Verknüpftes Wetter | Nur Schlaf-Abonnenten: nach einem erfolgreichen Schlaf-Versand zusätzlich das aktuelle Wetter an den gewählten Wetter-Abonnenten senden |
| Wetter einmal pro Tag | Mit verknüpftem Wetter: nur der erste Schlaf des Tages trägt Wetter (Nickerchen senden es nicht erneut) |
| Transformations-Skript | Optionales JavaScript, das den Request-Body baut — siehe JavaScript-Transformation |
Wie die Anfrage aussieht
Ohne Transformations-Skript ist der Body der canonical Datensatz der jeweiligen Art — ein stabiles, versioniertes JSON-Dokument (Schemata in JavaScript-Transformation) — mit deinen Body-Parametern hineingemischt. Jede Anfrage trägt außerdem einen Idempotency-Key-Header; die genaue Semantik steht in Versand & Sync.
2xx-Antworten zählen als Erfolg. Bei jedem anderen Status wandert der Eintrag in den Wiederholungs-/Prüf-Ablauf, und die Antwort wird im Versandverlauf festgehalten.
Einen Abonnenten testen
Der Test-Button im Editor schickt einen aktuellen Beispieldatensatz durch die gesamte Pipeline — inklusive deines Transformations-Skripts, der Auth und der Header — und zeigt den HTTP-Status samt Antwort-Body direkt in der App. Nutze ihn, bis dein Server zufrieden ist, und aktiviere dann den Auto-Versand.
Muster
- Gleiche URL, zwei Arten: Füge zwei Abonnenten hinzu, die auf denselben Endpunkt zeigen — einen für Workouts, einen für Schlaf. Dein Server kann anhand des Payloads verzweigen.
- Wettertagebuch: Lege einen
weather-Abonnenten an und verknüpfe ihn mit deinem Schlaf-Abonnenten — jeder Morgen-Versand trägt dann das Tageswetter neben dem Schlaf der Nacht. - Fan-out: Beliebig viele Abonnenten können dieselbe Art empfangen; jeder Versand wird separat verfolgt, und ein ausfallender Endpunkt blockiert nie einen anderen.