Aller au contenu principal

API

L'API ChurchApps est un monolithe modulaire -- une seule base de code qui sert six modules distincts, chacun avec sa propre base de données. Cette architecture vous offre les avantages organisationnels des microservices (limites claires, magasins de données indépendants) avec la simplicité opérationnelle d'un seul déploiement.

Modules

ModuleObjectif
MembershipPersonnes, groupes, ménages, permissions
AttendanceServices, sessions, enregistrements d'enregistrement
ContentPages, sections, éléments, streaming
GivingDonations, fonds, traitement des paiements
MessagingConversations, notifications, e-mail
DoingTâches, plans, assignations

Pile technique

  • Runtime: Node.js 22.x avec TypeScript (modules ES)
  • Framework: Express
  • Injection de dépendances: Inversify (routage basé sur les décorateurs)
  • Base de données: MySQL -- une base de données par module, chacun avec son propre pool de connexions
  • Auth: Authentification basée sur JWT via CustomAuthProvider
  • Déploiement: AWS Lambda via Serverless Framework v3

Ports

ProtocolePortDescription
HTTP8084API REST principale
WebSocket8087Connexions de socket en temps réel

Fonctions Lambda

Lorsqu'ils sont déployés sur AWS, l'API s'exécute sous la forme de quatre fonctions Lambda :

  • web -- Gère toutes les requêtes HTTP
  • socket -- Gère les connexions WebSocket
  • timer15Min -- S'exécute toutes les 15 minutes pour les notifications par e-mail
  • timerMidnight -- S'exécute quotidiennement pour les e-mails de synthèse et les tâches de maintenance

Bibliothèques partagées

L'API dépend de deux packages ChurchApps partagés :

  • @churchapps/helpers -- Utilitaires de base (DateHelper, ApiHelper, etc.)
  • @churchapps/apihelper -- Utilitaires du serveur Express y compris l'authentification, les aides de base de données et les intégrations AWS
info

L'API utilise les modules ES ("type": "module" dans package.json). Assurez-vous que vos importations utilisent la syntaxe du module ES.

Dans cette section