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
Порты
| Протокол | Порт | Описание |
|---|---|---|
| HTTP | 8084 | Основной REST API |
| WebSocket | 8087 | Соединения реального времени |
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-модулей.
В этом разделе
- Локальная настройка -- Клонирование, настройка и запуск API локально
- База данных -- Архитектура «одна БД на модуль», скрипты схемы и паттерны доступа к данным
- Структура модулей -- Контроллеры, репозитории, модели и аутентификация
- Справочник по эндпоинтам -- Полная документация REST API для всех модулей