This project is no longer mantained.
Use generator-hapi-api-stack instead.
Run npm install
as usual
npm run dev
will run the server with config.dev.js
settings
npm run staging
will run the server with config.staging.js
settings
npm run prod
will run the server with config.prod.js
settings
You can easily customize your Hapi server by adding the plugins you need in /server.js
manifest file or in /lib/index.js
.
Everything has been setup in order to avoid the need to write code to add new components to the server. Anyway, since this is a boilerplate and the loading process cannot be completely abstracted, you'll probably need to tweak various things around if you plan to use different packages for models, jobs, services, etc...
You can add your authentication strategies in /lib/config/auth.js
and they will be registered automatically.
The default authentication strategy is set in /lib/index.js
.
Adding a new route is a two step operation:
- Create a route as
/lib/routes/routename.js
- Add
routename
into/lib/config/routes.js
Every registered route is prefixed by a prefix and a version (/api/v1
is the default).
API_PREFIX
and API_VERSION
are defined in /lib/config/routes.js
.
To add a new model, just create a new filename into /lib/models/
and it will be loaded automatically.
Adding a new job is a two step operation:
- Create a job into
/lib/jobs/jobname.js
- Add
jobname
into/lib/config/jobs.js
Adding a new service is a two step operation:
- Create a service into
/lib/jobs/servicename.js
- Add
servicename
into/lib/config/services.js
hapi-chairo-api-boilerplate
├── lib
│ ├── boot # loader utils
│ ├── config # configs
│ ├── jobs # jobs
│ ├── models # models
│ ├── services # services
│ ├── routes # routes
│ └── index.js # plugins loading and registrations
│
├── test
│ ├── example-test.js
│
├── logs
│
├── server.js # server composition
├── config.js # setup ENV config
├── config.dev.js
├── config.staging.js
├── config.prod.js
├── package.json
└── README.md
- Hapi | Server Framework
- Glue | Server Composer
- Poop | Logs uncaught exceptions
- Boom | HTTP errors
- Joi | Object Schema validation
- Hapi Mongo Models | Mongo Models for Hapi
- Agenda | Job scheduler
- Better logs handling
- API Docs support