Hopp til hovedinnhold

API

ChurchApps API er en modulær monolitt -- en enkelt kodebase som betjener seks distinkte moduler, hver med sin egen database. Denne arkitekturen gir deg organisasjonsfordelene ved mikrotjenester (klare grenser, uavhengige datalagreinger) med operasjonell enkelthet fra en enkelt distribusjon.

Moduler

ModulFormål
MedlemskapPersoner, grupper, husstander, tillatelser
FrammøteTjenester, sesjoner, sjekk-inn poster
InnholdSider, seksjoner, elementer, streaming
GaverDonasjoner, fond, betalingsbehandling
MeldingerSamtaler, varsler, e-post
OppgaverOppgaver, planer, oppgaver

Teknologistokk

  • Runtime: Node.js 22.x med TypeScript (ES-moduler)
  • Rammeverk: Express
  • Avhengighetsinjeksjon: Inversify (dekorator-basert ruting)
  • Database: MySQL -- en database per modul, hver med sin egen tilkoblingspulje
  • Auth: JWT-basert godkjenning via CustomAuthProvider
  • Distribusjon: AWS Lambda via Serverless Framework v3

Porter

ProtokollPortBeskrivelse
HTTP8084Hoved-REST API
WebSocket8087Sanntids socket-tilkoblinger

Lambda-funksjoner

Når det blir distribuert til AWS, kjører API-en som fire Lambda-funksjoner:

  • web -- Håndterer alle HTTP-forespørsler
  • socket -- Administrerer WebSocket-tilkoblinger
  • timer15Min -- Kjøres hver 15. minutt for e-postvarsler
  • timerMidnight -- Kjøres daglig for sammendrag og vedlikeholdsoppgaver

Delte biblioteker

API-en avhenger av to delte ChurchApps-pakker:

Info

API-en bruker ES-moduler ("type": "module" i package.json). Sørg for at importer bruker ES-modulsyntaksen.

I denne seksjonen

  • Lokalt oppsett -- Klone, konfigurer og kjør API-en lokalt
  • Database -- Database-per-modul arkitektur, skjemaskript og dataaccessmønstre
  • Modulstruktur -- Kontrollanter, lagre, modeller og godkjenning
  • API-nøkler -- Personlige tilgangstoken for skript og koblinger
  • Tilkoblede apper (OAuth) -- Multi-leier OAuth-flyt for tredjepartsapper
  • Webhooks -- Push-hendelsesmeldinger til eksterne systemer
  • MCP-server -- Model Context Protocol-endepunkt som eksponerer API-en til AI-assistenter
  • Sluttpunktreferanse -- Komplett REST API-dokumentasjon for alle moduler