Pular para o conteúdo principal

ApiHelper

O pacote @churchapps/apihelper fornece utilitários do lado do servidor para todas as APIs Express.js do ChurchApps. Ele inclui a classe base de controller, autenticação JWT, utilitários de banco de dados e integrações AWS dos quais todo projeto de API depende.

Antes de Começar

O Que Está Incluído

  • CustomBaseController -- classe base para controllers de API, construída em inversify-express-utils
  • Auth -- autenticação JWT via CustomAuthProvider, AuthenticatedUser e Principal
  • Utilitários de banco de dados -- DB.query / DB.queryOne e a classe Pool para gerenciamento de conexões MySQL, mais MySqlHelper e DBCreator para configuração de schema
  • Integrações AWS -- AwsHelper para armazenamento de arquivos S3 e leituras do Parameter Store
  • Email -- EmailHelper suportando transportes SES e SMTP
  • Carregamento de configuração -- EnvironmentBase lê strings de conexão e segredos de variáveis de ambiente ou Parameter Store
  • Misc -- EncryptionHelper, FileStorageHelper, LoggingHelper, BasePermissions, SlugHelper

Configuração para Desenvolvimento Local

Este pacote vive no workspace Packages ao lado das outras bibliotecas compartilhadas:

  1. Clone o workspace:

    git clone https://github.com/ChurchApps/Packages.git
  2. Instale as dependências na raiz do workspace:

    cd Packages && yarn install
  3. Construa (compila TypeScript para dist/):

    yarn workspace @churchapps/apihelper build

    Ou execute yarn build na raiz para construir cada pacote em ordem de dependência.

Para testar mudanças dentro de uma API consumidora, use um portal Yarn temporário -- veja Desenvolvimento Local Contra uma Aplicação Consumidora.

Publicando

Lançamentos vão através de changesets: execute yarn changeset na raiz do workspace com cada mudança, depois yarn publish-all quando pronto para lançar. Veja Visão Geral de Bibliotecas Compartilhadas para o fluxo completo.

Info

Este pacote é uma dependência de toda API ChurchApps -- a API principal, AskApi e LessonsApi. Ao fazer alterações, teste contra uma API localmente antes de publicar.

Artigos Relacionados