Naar hoofdinhoud gaan

API

De ChurchApps API is een modulaire monoliet -- een enkele codebase die zes afzonderlijke modules serveert, elk met zijn eigen database. Deze architectuur geeft u de organisatorische voordelen van microservices (duidelijke grenzen, onafhankelijke gegevensarchieven) met de operationele eenvoud van een enkele implementatie.

Modules

ModuleDoel
MembershipPersonen, groepen, huishoudens, machtigingen
AttendanceServices, sessies, check-in-records
ContentPagina's, secties, elementen, streaming
GivingDonaties, fondsen, betalingsverwerking
MessagingGesprekken, meldingen, e-mail
DoingTaken, plannen, toewijzingen

Tech Stack

  • Runtime: Node.js 22.x met TypeScript (ES modules)
  • Framework: Express
  • Dependency Injection: Inversify (decorator-gebaseerde routing)
  • Database: MySQL -- één database per module, elk met zijn eigen verbindingspool
  • Auth: JWT-verificatie via CustomAuthProvider
  • Deployment: AWS Lambda via Serverless Framework v3

Poorten

ProtocolPortBeschrijving
HTTP8084Hoofd REST API
WebSocket8087Real-time socket-verbindingen

Lambda-functies

Bij implementatie in AWS draait de API als vier Lambda-functies:

  • web -- Behandelt alle HTTP-verzoeken
  • socket -- Beheert WebSocket-verbindingen
  • timer15Min -- Draait elke 15 minuten voor e-mailmeldingen
  • timerMidnight -- Draait dagelijks voor digest-e-mails en onderhoudstaken

Gedeelde Bibliotheken

De API is afhankelijk van twee gedeelde ChurchApps-pakketten:

info

De API gebruikt ES modules ("type": "module" in package.json). Zorg ervoor dat uw imports ES module-syntaxis gebruiken.

In Dit Gedeelte

  • Local Setup -- Kloon, configureer en voer de API lokaal uit
  • Database -- Database-per-module-architectuur, schemaschriften en gegevenstoegangspatronen
  • Module Structure -- Controllers, repositories, modellen en verificatie
  • Endpoint Reference -- Volledige REST API-documentatie voor alle modules