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

API

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

Модули

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

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

  • Среда выполнения: Node.js 22.x с TypeScript (ES-модули)
  • Фреймворк: Express
  • Внедрение зависимостей: Inversify (маршрутизация на основе декораторов)
  • База данных: MySQL -- одна база данных на модуль, каждая со своим пулом соединений
  • Аутентификация: JWT-аутентификация через CustomAuthProvider
  • Развёртывание: AWS Lambda через Serverless Framework v3

Порты

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

Lambda-функции

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

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

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

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

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

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

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