Локальная настройка API
Это руководство поможет вам настроить API ChurchApps для локальной разработки. Вы клонируете репозиторий, настроите подключения к базе данных, инициализируете схему и запустите сервер разработки с горячей перезагрузкой.
Перед началом работы
- Установите Node.js 22+, Git и MySQL 8.0+ -- см. Предварительные требования
- Создайте пользователя MySQL с правами на создание баз данных
- Ознакомьтесь со справочником переменных окружения для настройки API
Пошаговая настройка
1. Клонирование репозитория
git clone https://github.com/ChurchApps/Api.git
2. Установка зависимостей
Проект использует Yarn (защита блокирует npm install):
cd Api
yarn install
3. Настройка переменных окружения
cp .env.sample .env
Откройте .env и настройте строки подключения к MySQL. Каждому модулю нужно собственное подключение к базе данных в следующем формате:
mysql://root:password@localhost:3306/dbname
Вам понадобятся строки подключения для всех шести баз данных модулей (membership, attendance, content, giving, messaging, doing).
4. Инициализация баз данных
npm run initdb
Эта команда автоматически создаёт все шесть баз данных и их таблицы.
Вы можете инициализировать базу данных отдельного модуля командой npm run initdb -- --module=membership (или attendance, content, giving, messaging, doing).
5. Запуск сервера разработки
npm run dev
API запускается с горячей перезагрузкой по адресу http://localhost:8084.
Основные команды
| Команда | Описание |
|---|---|
npm run dev | Запуск сервера разработки с горячей перезагрузкой (tsx watch) |
npm run build | Очистка, компиляция TypeScript и копирование ресурсов |
npm run test | Запуск тестов с Jest (включая покрытие) |
npm run test:watch | Запуск тестов в режиме наблюдения |
npm run lint | Запуск ESLint с автоисправлением (ESLint — единственный форматер) |
Развёртывание на staging
Для развёртывания в staging-окружении:
npm run deploy-staging
Эта команда выполняет продакшен-сборку, а затем развёртывание через Serverless Framework.
Убедитесь, что ваши AWS-учётные данные настроены перед запуском команды развёртывания.
Локальная разработка библиотек
Если вам нужно разрабатывать общую библиотеку (@churchapps/helpers или @churchapps/apihelper) одновременно с API, создайте её в рабочем пространстве Packages и добавьте временный Yarn portal в API:
# В рабочем пространстве Packages
yarn build
# В каталоге API
yarn link ../Packages/helpers
# ... тестирование ...
yarn unlink ../Packages/helpers && yarn install
Это позволяет тестировать изменения библиотеки на API без публикации в npm. Дополнительную информацию см. в разделе Общие библиотеки — и никогда не фиксируйте разрешение portal, которое ссылка записывает в package.json.
Связанные статьи
- База данных — архитектура с одной базой данных для модуля
- Структура модулей — организация контроллеров, репозиториев и моделей
- Общие библиотеки — работа с
@churchapps/helpersи@churchapps/apihelper