A full-blown production-ready deployable API server. The goal of this boilerplate is to help the beginners to reach at least a mediocre level.
There are many great NodeJS API development boilerplates available on GitHub, however, I didn't find one that really suits my needs so I created this enhanced one. I want to create a boilerplate so amazing that it'll be the last one you ever need.
Here's why:
- Your time should be focused on building the APIs from the minute you start writing the code for your brand new project rather than investing time in setting it up with good practices and basic essentials built-in that help you make the development process easy.
- You shouldn't be doing the same tasks over and over like creating a project from scratch
Of course, no one boilerplate will serve all projects since your needs may be different. So I'll be adding more in the near future. You may also suggest changes by forking this repo and creating a pull request or opening an issue.
A list of nuts and bolts which are built-in to kick-start your API development.
- API contract definitions for request and response using JSON schema.
- Request Body Validation (like required fields, string, boolean, email, etc... formats) to catch most of the bad requests at an early stage.
- Centralized Error Handler with the flexibility to add custom error with clear message and status codes [
Must be integrated with at least one Error Monitoring tool like sentry] - Auto-generated Swagger Documentation using API contract definitions
- [
A switch to pick one of multiple integrated Email As A Service Providers.] - HTTPS-enabled (option for enabling it).
- Easily configurable SQL connector (knex query builder)
- Facilitating the ability to add database migrations and to seed data.
- Formatted logging functionality for tracing the errors in a better way.
- Tuned eslint and prettier configurations for better code linting and formatting.
- Well configured HTTP client to propagate external API calls.
- Monitoring the API request with Prometheus and grafana dashboards.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
What things you need to install the software and how to install them
Give examples
A step by step series of examples that tell you how to get a development env running
Say what the step will be
Give the example
And repeat
until finished
End with an example of getting some data out of the system or using it for a little demo
Explain how to run the automated tests for this system
Explain what these tests test and why
Give an example
Explain what these tests test and why
Give an example
Add additional notes about how to deploy this on a live system
We are using GitHub actions for testing and linting our code.
- Fastify - Fast and low overhead web framework, for Node.js
- Knex - "batteries included" SQL query builder
- Pino - Very low overhead Node.js logger.
This project is licensed under the MIT License - see the LICENSE file for details
- Hat tip to anyone whose code was useds