Vai al contenuto principale

API

L'API di ChurchApps è un monolite modulare -- un'unica codebase che serve sei moduli distinti, ciascuno con il proprio database. Questa architettura offre i vantaggi organizzativi dei microservizi (confini chiari, archivi dati indipendenti) con la semplicità operativa di un singolo deployment.

Moduli

ModuloScopo
MembershipPersone, gruppi, nuclei familiari, permessi
AttendanceServizi, sessioni, registrazioni presenze
ContentPagine, sezioni, elementi, streaming
GivingDonazioni, fondi, elaborazione pagamenti
MessagingConversazioni, notifiche, email
DoingAttività, piani, assegnazioni

Stack Tecnologico

  • Runtime: Node.js 22.x con TypeScript (moduli ES)
  • Framework: Express
  • Dependency Injection: Inversify (routing basato su decoratori)
  • Database: MySQL -- un database per modulo, ciascuno con il proprio pool di connessioni
  • Autenticazione: Basata su JWT tramite CustomAuthProvider
  • Deployment: AWS Lambda tramite Serverless Framework v3

Porte

ProtocolloPortaDescrizione
HTTP8084API REST principale
WebSocket8087Connessioni socket in tempo reale

Funzioni Lambda

Quando distribuito su AWS, l'API viene eseguito come quattro funzioni Lambda:

  • web -- Gestisce tutte le richieste HTTP
  • socket -- Gestisce le connessioni WebSocket
  • timer15Min -- Eseguito ogni 15 minuti per le notifiche email
  • timerMidnight -- Eseguito giornalmente per email digest e attività di manutenzione

Librerie Condivise

L'API dipende da due pacchetti condivisi di ChurchApps:

Info

L'API utilizza moduli ES ("type": "module" in package.json). Assicurati che le tue importazioni utilizzino la sintassi dei moduli ES.

In Questa Sezione

  • Setup Locale -- Clona, configura ed esegui l'API localmente
  • Database -- Architettura database-per-modulo, script dello schema e pattern di accesso ai dati
  • Struttura dei Moduli -- Controller, repository, modelli e autenticazione
  • Riferimento Endpoint -- Documentazione completa dell'API REST per tutti i moduli