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

ApiHelper

Пакет @churchapps/apihelper предоставляет серверные утилиты для всех Express.js API ChurchApps. Он включает базовый класс контроллера, JWT-аутентификацию, утилиты базы данных и интеграции AWS, от которых зависит каждый API-проект.

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

Что входит

  • CustomBaseController — базовый класс для API-контроллеров, построенный на inversify-express-utils
  • Аутентификация — JWT-аутентификация через CustomAuthProvider, AuthenticatedUser и Principal
  • Утилиты базы данныхDB.query / DB.queryOne и класс Pool для управления подключениями MySQL, плюс MySqlHelper и DBCreator для настройки схемы
  • Интеграции AWSAwsHelper для хранения файлов S3 и чтения SSM Parameter Store
  • Электронная почтаEmailHelper с поддержкой транспортов SES и SMTP
  • Загрузка конфигурацииEnvironmentBase читает строки подключения и секреты из переменных окружения или Parameter Store
  • ПрочееEncryptionHelper, FileStorageHelper, LoggingHelper, BasePermissions, SlugHelper

Настройка для локальной разработки

Этот пакет находится в рабочем пространстве Packages рядом с другими общими библиотеками:

  1. Клонируйте рабочее пространство:

    git clone https://github.com/ChurchApps/Packages.git
  2. Установите зависимости в корне рабочего пространства:

    cd Packages && yarn install
  3. Соберите (компилирует TypeScript в dist/):

    yarn workspace @churchapps/apihelper build

    Или запустите yarn build в корне для сборки каждого пакета в порядке зависимостей.

Для тестирования изменений в потребляющем API используйте временный Yarn portal — см. Локальная разработка в потребляющем приложении.

Публикация

Выпуски выполняются через changesets: запустите yarn changeset в корне рабочего пространства с каждым изменением, затем yarn publish-all когда будете готовы к выпуску. Полный поток см. в Обзоре общих библиотек.

Информация

Этот пакет является зависимостью каждого ChurchApps API — основного Api, AskApi и LessonsApi. При внесении изменений тестируйте с API локально перед публикацией.

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