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
- I-install ang Node.js at Git -- tingnan ang Prerequisites
- Pamilyarin mo ang sarili mo sa Packages workspace setup at release flow
- Ang package na ito ay nakadepende sa
@churchapps/helpers(bilang peer dependency) at muling nag-export nito
What's Included
- CustomBaseController -- base class para sa API controllers, itinayo sa
inversify-express-utils - Auth -- JWT authentication sa pamamagitan ng
CustomAuthProvider,AuthenticatedUser, atPrincipal - Database utilities --
DB.query/DB.queryOneat angPoolclass para sa MySQL connection management, atMySqlHelperatDBCreatorpara sa schema setup - AWS integrations --
AwsHelperpara sa S3 file storage at SSM Parameter Store reads - Email --
EmailHelperna sumusuporta sa SES at SMTP transports - Config loading --
EnvironmentBaseay 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:
-
I-clone ang workspace:
git clone https://github.com/ChurchApps/Packages.git -
I-install ang dependencies sa workspace root:
cd Packages && yarn install -
I-build (nag-compile ng TypeScript sa
dist/):yarn workspace @churchapps/apihelper buildO patakbuhin ang
yarn buildsa 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.
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.
Related Articles
- 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