Suscriptores (endpoints)
Un suscriptor es un destino para tus datos: una URL, un tipo de datos y un script de transformación opcional. Todo el tráfico saliente se configura aquí — Courier no tiene ninguna otra vía para enviar datos a ningún sitio.
Referencia de campos
| Campo | Significado |
|---|---|
| Nombre | Nombre visible, usado en los registros, las notificaciones y context.endpointName |
| Tipo | Lo que recibe este suscriptor: workout, sleep, note (anotación) o weather. Un suscriptor = un tipo |
| URL | El destino. Se exige HTTPS (http://localhost sin cifrar se permite para pruebas locales) |
| Método | GET / POST / PUT / PATCH / DELETE — por defecto POST |
| Cabeceras | Cabeceras estáticas, no secretas, enviadas con cada petición |
| Autenticación | Cómo se adjunta el secreto: Bearer (Authorization: Bearer <secreto>), cabecera personalizada (tú nombras la cabecera), parámetro de consulta (tú nombras el parámetro) o Ninguna |
| Secreto | Guardado en el llavero de iOS, nunca en la base de datos ni en las copias de seguridad de la configuración |
| Parámetros del cuerpo | Pares clave-valor estáticos. Con POST se fusionan en el cuerpo JSON; con otros métodos se aplanan en la cadena de consulta |
| Incluir ruta | Solo entrenamientos: adjunta el trazado GPS (puede ser grande) |
| Incluir serie de FC | Solo entrenamientos: adjunta la serie temporal completa de frecuencia cardiaca (grande) |
| Envío automático | Entregar automáticamente cuando lleguen datos nuevos de este tipo. Desactivado = este suscriptor solo recibe envíos manuales o por lotes |
| Tiempo vinculado | Solo suscriptores de sueño: tras un envío de sueño correcto, envía también el tiempo actual al suscriptor de tiempo seleccionado |
| Tiempo una vez al día | Con el tiempo vinculado: solo el primer sueño del día lleva el tiempo (las siestas no lo reenvían) |
| Script de transformación | JavaScript opcional que construye el cuerpo de la petición — consulta Transformación en JavaScript |
Qué aspecto tiene la petición
Sin script de transformación, el cuerpo es el registro canonical del tipo correspondiente — un documento JSON estable y versionado (esquemas en Transformación en JavaScript) — con tus parámetros del cuerpo fusionados. Cada petición lleva además una cabecera Idempotency-Key; consulta Envíos y sincronización para la semántica exacta.
Las respuestas 2xx cuentan como éxito. Con cualquier otro código de estado, el elemento entra en el flujo de reintento/atención y la respuesta queda registrada en el historial de envíos.
Probar un suscriptor
El botón Probar del editor manda un registro de muestra reciente por todo el pipeline — incluidos tu script de transformación, la autenticación y las cabeceras — y muestra el código de estado HTTP y el cuerpo de la respuesta dentro de la app. Úsalo hasta que tu servidor quede satisfecho y luego activa el envío automático.
Patrones
- Misma URL, dos tipos: añade dos suscriptores apuntando al mismo endpoint, uno para entrenamientos y otro para sueño. Tu servidor puede distinguirlos por el payload.
- Diario meteorológico: crea un suscriptor de tipo
weathery vincúlalo desde tu suscriptor de sueño — el envío de cada mañana lleva el tiempo del día junto al sueño de la noche. - Difusión múltiple: cualquier número de suscriptores puede recibir el mismo tipo; cada envío se registra por separado, y un endpoint que falla nunca bloquea a otro.