API
Die ChurchApps API ist ein Modularmonolith -- eine einzelne Codebasis, die sechs verschiedene Module bedient, jedes mit seiner eigenen Datenbank. Diese Architektur bietet Ihnen die organisatorischen Vorteile von Microservices (klare Grenzen, unabhängige Datenspeicher) mit der operativen Einfachheit einer einzelnen Bereitstellung.
Module
| Modul | Zweck |
|---|---|
| Mitgliedschaft | Personen, Gruppen, Haushalte, Berechtigungen |
| Teilnahme | Gottesdienste, Sitzungen, Check-in-Aufzeichnungen |
| Inhalte | Seiten, Abschnitte, Elemente, Streaming |
| Geben | Spenden, Fonds, Zahlungsabwicklung |
| Nachrichten | Gespräche, Benachrichtigungen, E-Mail |
| Aufgaben | Aufgaben, Pläne, Zuordnungen |
Tech Stack
- Laufzeit: Node.js 22.x mit TypeScript (ES-Module)
- Framework: Express
- Abhängigkeitsinjektion: Inversify (dekorator-basiertes Routing)
- Datenbank: MySQL -- eine Datenbank pro Modul, jede mit ihrem eigenen Verbindungspool
- Auth: JWT-basierte Authentifizierung über
CustomAuthProvider - Bereitstellung: AWS Lambda über Serverless Framework v3
Ports
| Protokoll | Port | Beschreibung |
|---|---|---|
| HTTP | 8084 | Haupt-REST-API |
| WebSocket | 8087 | WebSocket-Echtzeit-Verbindungen |
Lambda-Funktionen
Bei der Bereitstellung auf AWS wird die API als vier Lambda-Funktionen ausgeführt:
web-- Verarbeitet alle HTTP-Anfragensocket-- Verwaltet WebSocket-Verbindungentimer15Min-- Wird alle 15 Minuten für E-Mail-Benachrichtigungen ausgeführttimerMidnight-- Wird täglich für Digest-E-Mails und Wartungsaufgaben ausgeführt
Freigegebene Bibliotheken
Die API hängt von zwei freigegebenen ChurchApps-Paketen ab:
@churchapps/helpers-- Basis-Utilities (DateHelper, ApiHelper, etc.)@churchapps/apihelper-- Express-Server-Utilities einschließlich Auth, Datenbankhelper und AWS-Integrationen
Info
Die API verwendet ES-Module ("type": "module" in package.json). Stellen Sie sicher, dass Ihre Importe die ES-Modul-Syntax verwenden.
In diesem Abschnitt
- Lokales Setup -- Klonen, konfigurieren und führen Sie die API lokal aus
- Datenbank -- Datenbankarchitektur pro Modul, Schemaskripte und Datenzugriffsmuster
- Modulstruktur -- Controller, Repositories, Modelle und Authentifizierung
- API-Schlüssel -- Persönliche Zugriffstoken für Skripte und Konnektoren
- Connected Apps (OAuth) -- Multi-Tenant-OAuth-Fluss für Drittanbieter-Apps
- Webhooks -- Event-Benachrichtigungen an externe Systeme pushen
- MCP-Server -- Model Context Protocol-Endpunkt, der die API für KI-Assistenten verfügbar macht
- Endpunkt-Referenz -- Vollständige REST-API-Dokumentation für alle Module