Zum Hauptinhalt springen

API

Die ChurchApps API ist ein modularer Monolith — ein einzelner Codebase, der sechs unterschiedliche Module bedient, von denen jedes seine eigene Datenbank hat. Diese Architektur gibt Ihnen die Organisationsvorteile von Microservices (klare Grenzen, unabhängige Datenspeicher) mit der Betriebseinfachheit einer einzelnen Bereitstellung.

Module

ModulZweck
MembershipPersonen, Gruppen, Haushalte, Berechtigungen
AttendanceServices, Sessions, Check-in-Datensätze
ContentSeiten, Abschnitte, Elemente, Streaming
GivingSpenden, Fonds, Zahlungsabwicklung
MessagingUnterhaltungen, Benachrichtigungen, E-Mail
DoingAufgaben, Pläne, Zuweisungen

Tech Stack

  • Runtime: Node.js 22.x mit TypeScript (ES-Module)
  • Framework: Express
  • Dependency Injection: Inversify (Dekorator-basierte Routing)
  • Datenbank: MySQL — eine Datenbank pro Modul, jede mit eigenem Connection Pool
  • Auth: JWT-basierte Authentifizierung via CustomAuthProvider
  • Deployment: AWS Lambda via Serverless Framework v3

Ports

ProtokollPortBeschreibung
HTTP8084Haupt-REST-API
WebSocket8087Real-Time-Socket-Verbindungen

Lambda-Funktionen

Bei Deployment zu AWS läuft die API als vier Lambda-Funktionen:

  • web — Verarbeitet alle HTTP-Anfragen
  • socket — Verwaltet WebSocket-Verbindungen
  • timer15Min — Läuft alle 15 Minuten für E-Mail-Benachrichtigungen
  • timerMidnight — Läuft täglich für Digest-E-Mails und Wartungsaufgaben

Gemeinsame Biblioteken

Die API hängt von zwei gemeinsamen ChurchApps-Packages ab:

Info

Die API nutzt ES-Module ("type": "module" in package.json). Stellen Sie sicher, dass Ihre Importe die ES-Modul-Syntax verwenden.

In diesem Abschnitt

  • Lokales Setup — API klonen, konfigurieren und lokal ausführen
  • Datenbank — Datenbank-pro-Modul-Architektur, Schema-Skripte und Datenzugriffsmuster
  • Modulstruktur — Controller, Repositories, Modelle und Authentifizierung
  • Endpoint-Referenz — Vollständige REST-API-Dokumentation für alle Module