https://github.com/alialiayman/node-microservice
API: Created with NodeJs and Express library. JWT is used for RESTful service security and checked in middleware. The project is dockerized and can be hosted easily. 💎
https://github.com/alialiayman/node-microservice
docker hackerbay jwt jwt-token microservice node
Last synced: about 1 year ago
JSON representation
API: Created with NodeJs and Express library. JWT is used for RESTful service security and checked in middleware. The project is dockerized and can be hosted easily. 💎
- Host: GitHub
- URL: https://github.com/alialiayman/node-microservice
- Owner: alialiayman
- Created: 2020-03-23T20:11:55.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2021-08-03T22:26:18.000Z (over 4 years ago)
- Last Synced: 2025-01-20T21:40:47.479Z (about 1 year ago)
- Topics: docker, hackerbay, jwt, jwt-token, microservice, node
- Language: JavaScript
- Homepage: https://github.com/hackerbay/interview-backend-task
- Size: 214 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 7
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
http://GitHub.com/hackerbay/interview
https://github.com/hackerbay/interview-backend-task
## Setup
**Install Packages**
```
npm i
```
**Run tests**
```
npm run test
```
**Run locally**
```
npm start
```
**Run docker image**
```
docker build -t aliayman/hackerbay-backend .
docker images
docker run -p 3000:3000 -d aliayman/hackerbay-backend
docker ps
docker logs
docker exec -it /bin/bash
exit
docker stop
```
**DockerHub Image**
https://hub.docker.com/r/aliayman/hackerbay-backend
docker pull aliayman/hackerbay-backend
###Test end points using Curl
**Login**
```
curl --location --request POST 'localhost:3000/login' \
--header 'Content-Type: application/json' \
--data-raw '{
"username": "user",
"password": "pass"
}'
```
```
{"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InVzZXIiLCJleHAiOjE1ODQ5OTY5NzYsImlhdCI6MTU4NDk5MzM3Nn0.JHOdkEAGDdK61rXK66tlM
```
**Apply JSON Patch to a document**
Use the token generated by login step above in the request below
```
curl --location --request POST 'localhost:3000/document' \
--header 'token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InVzZXIiLCJleHAiOjE1ODQ5OTY4MjEsImlhdCI6MTU4NDk5MzIyMX0.eHB5CrTYi6duKkK7-iQ4QJUslAaoan-EHQclOAW-JY0' \
--header 'Content-Type: application/json' \
--data-raw '{
"doc": {
"baz": "qux",
"foo": "bar"
},
"patch": [
{
"op": "replace",
"path": "/baz",
"value": "boo"
},
{
"op": "add",
"path": "/hello",
"value": [
"world"
]
},
{
"op": "remove",
"path": "/foo"
}
]
}'
```
```
{"baz":"boo","hello":["world"]}
```
**Create thumbnail**
```
curl --location --request GET 'localhost:3000/thumbnail?url=https://via.placeholder.com/150x150&token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InVzZXIiLCJleHAiOjE1ODQ5OTY4MjEsImlhdCI6MTU4NDk5MzIyMX0.eHB5CrTYi6duKkK7-iQ4QJUslAaoan-EHQclOAW-JY0' \
--header 'Content-Type: application/json' \
--data-raw '{
"doc": {
"baz": "qux",
"foo": "bar"
},
"patch": [
{
"op": "replace",
"path": "/baz",
"value": "boo"
},
{
"op": "add",
"path": "/hello",
"value": [
"world"
]
},
{
"op": "remove",
"path": "/foo"
}
]
}'
```
```
To see an actual png image rendered use post man.
```