3.8 KiB
koa-api-boilerplate
This repository is a boilerplate for building APIs with koa2 and Mongo DB. This repository was originally forked from Adrian Obelmejias' koa-api-boilerplate repository. It makes the following modifications:
-
Removes babel as a dependency. This repository is now naively compatible with node v8.9 or higher.
-
Replaced
bcryptdependency withbcryptjs. This improves compatibility across versions of node.js and across OSs. -
Configured for Travis CI (continuous integration), Coveralls (code coverage), Green Keeper (automated dependency management), and Semantic Release (automated versioning).
-
'Production' environment is targeted for packaging as a Docker container.
Features
This project covers basic necessities of most APIs.
- Authentication (passport & jwt)
- Database (mongoose)
- Testing (mocha)
- Doc generation with apidoc
- Linting using standard
- Packaged as a Docker container
Requirements
- node ^10.15.1
- npm ^6.7.0
Installation
git clone https://github.com/christroutner/koa-api-boilerplate
Structure
├── bin
│ └── server.js # Bootstrapping and entry point
├── config # Server configuration settings
│ ├── env # Environment specific config
│ │ ├── common.js
│ │ ├── development.js
│ │ ├── production.js
│ │ └── test.js
│ ├── index.js # Config entrypoint - exports config according to envionrment and commons
│ └── passport.js # Passportjs config of strategies
|
├── production # Dockerfile for build production container
|
├── src # Source code
│ ├── modules
│ │ ├── controller.js # Module-specific controllers
│ │ └── router.js # Router definitions for module
│ ├── models # Mongoose models
│ └── middleware # Custom middleware
│ └── validators # Validation middleware
└── test # Unit tests
Usage
npm startStart server on live modenpm run devStart server on dev mode with nodemonnpm run docsGenerate API documentationnpm testRun mocha testsdocker-compose buildBuild a 'production' Docker containerdocker-compose upRun the docker container
Documentation
API documentation is written inline and generated by apidoc.
Visit http://localhost:5000/docs/ to view docs
Dependencies
- koa2
- koa-router
- koa-bodyparser
- koa-generic-session
- koa-logger
- MongoDB
- Mongoose
- Passport
- Nodemon
- Mocha
- apidoc
- ESLint
License
MIT
testing sem release