Lumipat sa pangunahing nilalaman

ApiHelper

Ang @churchapps/apihelper package ay nagbibigay ng server-side utilities para sa lahat ng ChurchApps Express.js APIs. Ito ay may kasamang base controller class, JWT authentication, database utilities, at AWS integrations na bawat API project ay nakadepende sa.

Bago Ka Magsimula

What's Included

  • CustomBaseController -- base class para sa API controllers, itinayo sa inversify-express-utils
  • Auth -- JWT authentication sa pamamagitan ng CustomAuthProvider, AuthenticatedUser, at Principal
  • Database utilities -- DB.query / DB.queryOne at ang Pool class para sa MySQL connection management, at MySqlHelper at DBCreator para sa schema setup
  • AWS integrations -- AwsHelper para sa S3 file storage at SSM Parameter Store reads
  • Email -- EmailHelper na sumusuporta sa SES at SMTP transports
  • Config loading -- EnvironmentBase ay nagsasaad ng connection strings at secrets mula sa environment variables o Parameter Store
  • Misc -- EncryptionHelper, FileStorageHelper, LoggingHelper, BasePermissions, SlugHelper

Setup para sa Local Development

Ang package na ito ay nakatira sa Packages workspace kasama ang iba pang shared libraries:

  1. I-clone ang workspace:

    git clone https://github.com/ChurchApps/Packages.git
  2. I-install ang dependencies sa workspace root:

    cd Packages && yarn install
  3. I-build (nag-compile ng TypeScript sa dist/):

    yarn workspace @churchapps/apihelper build

    O patakbuhin ang yarn build sa root upang i-build ang bawat package sa dependency order.

Upang subukan ang changes sa loob ng isang consuming API, gamitin ang isang temporary Yarn portal -- tingnan ang Local Development Against a Consuming App.

Publishing

Ang mga releases ay napupunta sa pamamagitan ng changesets: patakbuhin ang yarn changeset sa workspace root sa bawat change, pagkatapos ay yarn publish-all kapag handa na mag-release. Tingnan ang Shared Libraries Overview para sa buong flow.

Impormasyon

Ang package na ito ay isang dependency ng bawat ChurchApps API -- ang core Api, AskApi, at LessonsApi. Kapag gumagawa ng changes, subukan laban sa isang API nang lokal bago mag-publish.

  • Helpers -- Ang base utility package na ang package na ito ay nakadepende sa
  • Module Structure -- Paano ginagamit ang controllers at auth middleware sa API modules
  • Local API Setup -- Pag-setup ng API para sa local development