Saltar al contenido principal

API

La API de ChurchApps es un monolito modular -- una única base de código que sirve a seis módulos distintos, cada uno con su propia base de datos. Esta arquitectura te da los beneficios organizacionales de los microservicios (límites claros, almacenes de datos independientes) con la simplicidad operacional de un único despliegue.

Módulos

MóduloPropósito
MembershipPersonas, grupos, hogares, permisos
AttendanceServicios, sesiones, registros de asistencia
ContentPáginas, secciones, elementos, transmisión
GivingDonaciones, fondos, procesamiento de pagos
MessagingConversaciones, notificaciones, correo
DoingTareas, planes, asignaciones

Stack Tecnológico

  • Runtime: Node.js 22.x con TypeScript (módulos ES)
  • Framework: Express
  • Inyección de Dependencias: Inversify (enrutamiento basado en decoradores)
  • Base de Datos: MySQL -- una base de datos por módulo, cada una con su propio pool de conexiones
  • Autenticación: Autenticación basada en JWT a través de CustomAuthProvider
  • Despliegue: AWS Lambda mediante Serverless Framework v3

Puertos

ProtocoloPuertoDescripción
HTTP8084API REST principal
WebSocket8087Conexiones de socket en tiempo real

Funciones de Lambda

Cuando se despliega en AWS, la API se ejecuta como cuatro funciones de Lambda:

  • web -- Maneja todas las solicitudes HTTP
  • socket -- Gestiona conexiones WebSocket
  • timer15Min -- Se ejecuta cada 15 minutos para notificaciones por correo electrónico
  • timerMidnight -- Se ejecuta diariamente para resúmenes de correo electrónico y tareas de mantenimiento

Bibliotecas Compartidas

La API depende de dos paquetes compartidos de ChurchApps:

  • @churchapps/helpers -- Utilidades base (DateHelper, ApiHelper, etc.)
  • @churchapps/apihelper -- Utilidades de servidor Express incluyendo autenticación, ayudantes de base de datos e integraciones con AWS
info

La API utiliza módulos ES ("type": "module" en package.json). Asegúrate de que tus importaciones usen la sintaxis de módulos ES.

En Esta Sección