購読者(エンドポイント)
購読者とは、データの送り先 1 件のことです:1 つの URL、1 種類のデータ、 そして必要なら 1 つの変換スクリプト。送信トラフィックに関する設定はすべて ここに集約されています — Courier がデータをどこかへ送る手段は、これ以外に ありません。
フィールドリファレンス
| フィールド | 意味 |
|---|---|
| 名前 | 表示名。発行履歴、通知、context.endpointName で使われます |
| 種類 | この購読者が受け取るもの:workout、sleep、note(注釈)、weather のいずれか。1 購読者 = 1 種類 |
| URL | 送り先。HTTPS 必須(ローカルテスト用に平文の http://localhost は許可されます) |
| メソッド | GET / POST / PUT / PATCH / DELETE — デフォルトは POST |
| ヘッダー | 毎回のリクエストに付く、静的で秘密ではないヘッダー |
| 認証 | シークレットの付け方:Bearer(Authorization: Bearer <secret>)、カスタムヘッダー(ヘッダー名を指定)、クエリパラメータ(パラメータ名を指定)、またはなし |
| シークレット | iOS のキーチェーンに保存され、データベースにも設定バックアップにも決して入りません |
| ボディパラメータ | 静的なキーと値のペア。POST では JSON ボディにマージされ、他のメソッドではクエリ文字列に展開されます |
| ルートを含める | ワークアウトのみ:GPS トラックを添付します(大きくなることがあります) |
| 心拍系列を含める | ワークアウトのみ:心拍数の完全な時系列を添付します(大きい) |
| 自動発行 | この種類の新しいデータが届いたら自動的に配信します。オフの場合、この購読者は手動/一括発行のみを受け取ります |
| 連動する天気 | 睡眠の購読者のみ:睡眠の発行が成功した後、選択した天気の購読者へ現在の天気も送ります |
| 天気は 1 日 1 回 | 連動する天気の設定時:その日最初の睡眠だけが天気を伴います(昼寝で再送されることはありません) |
| 変換スクリプト | リクエストボディを組み立てる、任意の JavaScript — JavaScript 変換を参照 |
リクエストはどんな形か
変換スクリプトがない場合、ボディはその種類のcanonical レコード — 安定してバージョン管理された JSON ドキュメント(スキーマは JavaScript 変換を参照)— に、 ボディパラメータをマージしたものになります。すべてのリクエストには Idempotency-Key ヘッダーも付きます。正確な意味は 発行と同期を参照してください。
2xx レスポンスは成功と見なされます。それ以外のステータスの場合、その 項目はリトライ/要対応のフローに入り、レスポンスは発行履歴に記録されます。
購読者をテストする
エディタのテストボタンは、最近のサンプルレコードをパイプライン全体 — 変換スクリプト、認証、ヘッダーを含む — に通して送信し、HTTP ステータスと レスポンスボディをアプリ内に表示します。サーバーが満足するまでテストを 繰り返し、それから自動発行を有効にしてください。
パターン
- 同じ URL で 2 種類:同じエンドポイントを指す購読者を 2 つ追加します。 1 つはワークアウト用、もう 1 つは睡眠用。サーバー側はペイロードを見て 分岐できます。
- 天気日記:
weatherの購読者を作り、睡眠の購読者から連動させます — 毎朝の発行が、昨夜の睡眠と並べてその日の天気を運んでくれます。 - ファンアウト:同じ種類を受け取る購読者はいくつでも作れます。各発行は 個別に追跡され、あるエンドポイントの失敗が別のエンドポイントを妨げる ことはありません。