Nodetomic Api Swagger
RESTful API Nodejs designed for horizontal scalability with support for cluster, based on Swagger, Redis, JWT, Passport, Socket.io, Express, MongoDB.
Technologies
Preview
url: http://localhost:8000/socket
Swagger Api
url: http://localhost:8000/docs
OpenAPI Spec compatibility: 2.0, 3.0
Horizontal scalability
View horizontal scaling representation image with nodetomic-api-swagger HERE!
Structure
/src/
|-- api
| |-- swagger
| |-- controllers
| |-- models
| `-- sockets
|-- assets
|-- auth
| |-- swagger
| |-- controllers
| |-- passports
| `-- services
|-- config
|-- lib
| |-- express
| |-- mongoose
| |-- redis-jwt
| |-- socket.io
| `-- swagger
|-- views
`-- app.js
Requirements
- Nodejs >= 6.x.x (Recommended last version)
- MongoDB >= 3.x.x
- Redis >= 3.x.x (Recommended last version)
Installation
Npm
git clone https://github.com/kevoj/nodetomic-api-swagger
cd nodetomic-api-swagger
npm i
Yarn
yarn add nodetomic-api-swagger --ignore-engines
Development
Start
Command: npm start
Description: Start the project in development mode
Note: if you want work with nodemon execute the command npm run modemon
Build
Command: npm run build
Description: Compile the project by outputting the dist folder
Note: Generate folder dist
. So "dist/client" is optional. You can paste the compilation of a client here, for example of Vue, React, Angular...
Test
Command: npm test
Description: Run Lint and run Build in production mode and execute the authentication methods and basic requests.
Lint
Command: npm run lint
Description: Run ESLint to verify the entire project code
Pm2 [Development]
Dev-Simple
Command: npm run dev-simple
Description: Run Pm2 and compile the project in development mode in a single instance
Dev-Cluster
Command: npm run dev-cluster
Description: Run Pm2 and compile the project in development mode in multiple instances
Pm2 [Production]
Simple
Command: npm run simple
Description: Run Pm2 and compile the project in production mode in a single instance
Cluster
Command: npm run cluster
Description: Run Pm2 and compile the project in production mode in multiple instances
Stop
Pm2
Command: npm stop
Description: Stops all processes associated with project pm2
Node
Command: killall node
Description: Destroyed all process for node
API Docs
You can find the documentation HERE!
License
MIT © Leonardo Rico