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
Порты
| Протокол | Порт | Описание |
|---|---|---|
| HTTP | 8084 | Основной REST API |
| WebSocket | 8087 | Соединения сокетов реального времени |
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 модулей.
В этом разделе
- Локальная настройка — Клонируйте, настройте и запустите API локально
- База данных — Архитектура одна база данных на модуль, скрипты схемы и шаблоны доступа к данным
- Структура модуля — Контроллеры, репозитории, модели и аутентификация
- API ключи — Личные токены доступа для скриптов и соединителей
- Подключенные приложения (OAuth) — Многопользовательский поток OAuth для приложений третьих сторон
- Webhooks — Push-уведомления о событиях на внешние системы
- MCP сервер — Конечная точка протокола контекста модели, которая предоставляет API помощникам AI
- Справочник конечных точек — Полная документация по REST API для всех модулей