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

Локальная настройка API

Это руководство поможет вам настроить API ChurchApps для локальной разработки. Вы клонируете репозиторий, настроите подключения к базе данных, инициализируете схему и запустите сервер разработки с горячей перезагрузкой.

Перед началом работы

Пошаговая настройка​

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.

Связанные статьи​