API
ChurchApps API — это модульный монолит — единая кодовая база, которая обслуживает шесть модулей данных, каждый с собственной базой данных. Эта архитектура дает вам организационные преимущества микросервисов (четкие границы, независимые хранилища данных) с операционной простотой единого развертывания.
Модули
| Модуль | Назначение |
|---|---|
| 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— управляет подключениями WebSockettimer15Min— запускается каждые 30 минут для уведомлений по электронной почте (имя имеет историческое значение)timerMidnight— запускается ежедневно для дайджестов электронной почты и задач обслуживанияtimerScheduledTasks— запускается ежедневно для выполнения автоматизаций и обработки просроченных рабочих процессовtimerWebhooks— запускается каждую минуту для доставки очередных исходящих вебхуков
Общие библиотеки
API зависит от двух общих пакетов ChurchApps:
@churchapps/helpers— базовые утилиты (DateHelper, ApiHelper и т. д.)@churchapps/apihelper— утилиты Express-сервера, включая аутентификацию, помощников баз данных и интеграции AWS
Информация
API использует модули ES ("type": "module" в package.json). Убедитесь, что ваши импорты используют синтаксис модулей ES.
В этом разделе
- Локальная установка — клонирование, конфигурация и запуск API локально
- База данных — архитектура с одной базой данных для модуля, скрипты схем и паттерны доступа к данным
- Структура модуля — контроллеры, репозитории, модели и аутентификация
- Ключи API — личные маркеры доступа для скриптов и коннекторов
- Подключенные приложения (OAuth) — многопользовательский поток OAuth для приложений третьих сторон
- Вебхуки — отправка уведомлений о событиях во внешние системы
- MCP Server — конечная точка Model Context Protocol, которая открывает API для ассистентов AI
- Справочник конечной точки — полная документация REST API для всех модулей