Перейти к основному содержимому

API

ChurchApps API — это модульный монолит — единая кодовая база, которая служит шести различным модулям, каждый со своей собственной базой данных. Эта архитектура дает вам организационные преимущества микросервисов (четкие границы, независимые хранилища данных) с операционной простотой одного развертывания.

Модули

МодульНазначение
MembershipЛюди, группы, домохозяйства, разрешения
AttendanceУслуги, сессии, записи о регистрации
ContentСтраницы, разделы, элементы, потоковая трансляция
GivingПожертвования, фонды, обработка платежей
MessagingБеседы, уведомления, электронная почта
DoingЗадачи, планы, назначения

Технологический стек

  • Runtime: Node.js 22.x с TypeScript (ES модули)
  • Framework: Express
  • Dependency Injection: Inversify (маршрутизация на основе декораторов)
  • Database: MySQL — одна база данных на модуль, каждая со своим пулом соединений
  • Auth: JWT-аутентификация через CustomAuthProvider
  • Deployment: AWS Lambda через Serverless Framework v3

Порты

ПротоколПортОписание
HTTP8084Основной REST API
WebSocket8087Соединения сокетов реального времени

Lambda функции

При развертывании на AWS API работает как четыре Lambda функции:

  • web — Обрабатывает все HTTP запросы
  • socket — Управляет WebSocket соединениями
  • timer15Min — Запускается каждые 15 минут для email уведомлений
  • timerMidnight — Запускается ежедневно для дайджест писем и задач обслуживания

Общие библиотеки

API зависит от двух общих пакетов ChurchApps:

  • @churchapps/helpers — Базовые утилиты (DateHelper, ApiHelper и т.д.)
  • @churchapps/apihelper — Утилиты сервера Express, включая аутентификацию, помощники базы данных и интеграции AWS
Информация

API использует ES модули ("type": "module" в package.json). Убедитесь, что ваши импорты используют синтаксис ES модулей.

В этом разделе