Pular para o conteúdo principal

API

A API ChurchApps é um monólito modular -- uma única base de código que serve seis módulos distintos, cada um com seu próprio banco de dados. Essa arquitetura oferece a você os benefícios organizacionais dos microsserviços (limites claros, armazenamentos de dados independentes) com a simplicidade operacional de uma única implantação.

Módulos

MóduloPropósito
MembershipPessoas, grupos, residências, permissões
AttendanceServiços, sessões, registros de check-in
ContentPáginas, seções, elementos, streaming
GivingDoações, fundos, processamento de pagamento
MessagingConversas, notificações, email
DoingTarefas, planos, atribuições

Stack de Tecnologia

  • Runtime: Node.js 22.x com TypeScript (módulos ES)
  • Framework: Express
  • Injeção de Dependência: Inversify (roteamento baseado em decorador)
  • Banco de Dados: MySQL -- um banco de dados por módulo, cada um com seu próprio pool de conexão
  • Auth: Autenticação baseada em JWT via CustomAuthProvider
  • Deployment: AWS Lambda via Serverless Framework v3

Portas

ProtocoloPortaDescrição
HTTP8084API REST Principal
WebSocket8087Conexões de socket em tempo real

Funções Lambda

Quando implantado no AWS, a API é executada como quatro funções Lambda:

  • web -- Lida com todas as solicitações HTTP
  • socket -- Gerencia conexões WebSocket
  • timer15Min -- Executa a cada 15 minutos para notificações de email
  • timerMidnight -- Executa diariamente para emails de resumo e tarefas de manutenção

Bibliotecas Compartilhadas

A API depende de dois pacotes ChurchApps compartilhados:

  • @churchapps/helpers -- Utilitários base (DateHelper, ApiHelper, etc.)
  • @churchapps/apihelper -- Utilitários de servidor Express incluindo autenticação, auxiliares de banco de dados e integrações AWS
Info

A API usa módulos ES ("type": "module" em package.json). Certifique-se de que suas importações usam a sintaxe de módulo ES.

Nesta Seção