Aller au contenu principal

API

L'API ChurchApps est un monolithe modulaire -- un seul codebase qui sert six modules distincts, chacun avec sa propre base de données. Cette architecture vous donne 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 de check-in
ContentPages, sections, éléments, streaming
GivingDonations, fonds, traitement des paiements
MessagingConversations, notifications, e-mail
DoingTâches, plans, assignments

Pile technologique

  • Exécution : 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, chacune avec son propre pool de connexions
  • Authentification : Authentification basée sur JWT via CustomAuthProvider
  • Déploiement : AWS Lambda via Serverless Framework v3

Ports

ProtocolePortDescription
HTTP8084API REST principale
WebSocket8087Connexions socket en temps réel

Fonctions Lambda

Lorsqu'il est déployé sur AWS, l'API s'exécute en tant que quatre fonctions Lambda :

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

Bibliothèques partagées

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

  • @churchapps/helpers -- Utilitaires de base (DateHelper, ApiHelper, etc.)
  • @churchapps/apihelper -- Utilitaires du serveur Express y compris l'authentification, les helpers 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 imports utilisent la syntaxe du module ES.

Dans cette section