Zum Hauptinhalt springen

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

ModulZweck
MitgliedschaftPersonen, Gruppen, Haushalte, Berechtigungen
TeilnahmeGottesdienste, Sitzungen, Check-in-Aufzeichnungen
InhalteSeiten, Abschnitte, Elemente, Streaming
GebenSpenden, Fonds, Zahlungsabwicklung
NachrichtenGespräche, Benachrichtigungen, E-Mail
AufgabenAufgaben, 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

ProtokollPortBeschreibung
HTTP8084Haupt-REST-API
WebSocket8087WebSocket-Echtzeit-Verbindungen

Lambda-Funktionen

Bei der Bereitstellung auf AWS wird die API als vier Lambda-Funktionen ausgeführt:

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

Freigegebene Bibliotheken

Die API hängt von zwei freigegebenen ChurchApps-Paketen ab:

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