@author : Subhasis Samal
- Vertx 3.x
- Java 8
- MongoDB (Database)
- Redis (Cache)
- Docker (Container)
- Junit (Testing)
- Mockito
- Maven (Build)
- MongoDB installation and Test Data Set Up
- Refer the instructions to install MongoDB : https://docs.mongodb.com/manual/installation/
- Make sure Mongo DB is running on the default port 27017
$ mongod -dbpath data/db/
- Insert Agent related data with this query db.agents.insert() and passing the agent data present in this file- agentData.json
-
Eclipse IDE Installation https://www.eclipse.org/downloads/
-
Maven Installation : https://maven.apache.org/install.html
-
Clone the Repo from GitHub
$ git clone https://github.com/subhasam/work-distribution-api.git
$ cd work-distribution-api
$ mvn clean install
-
To run in IDE - Import the source code in Eclipse IDE and add the Run Configurations
and 
-
Steps for Installation through Docker(WORK IN PROGRESS)
$ git clone https://github.com/subhasam/event-driven-restful-api.git
$ cd event-driven-restful-api
$ mvn clean install
$ docker-compose build
$ docker-compose up
- After install wait until the below message appears in the console which means API is ready to process you request.
Congratulations !! Work Distribution API is ready to process your request at http://localhost:9090
Hit this URL on browser or through any REST Client, you will see a response from the server.
http://localhost:9090/workdistribution/v1/health-check
RESPONSE : Health-Check : Work Distribution API is Up Running...
You can use any Rest Client of your choice like Postman/Insomnia/Chrome's Rest Client Extension to test the API. For every request except Health check, you need to pass an attribute "access_token" with any value in the Header for authentication.
access_token: subhasis
| METHOD | End-Point | Description | Test Data/Request-Response Reference |
|---|---|---|---|
| GET | /workdistribution/v1/health-check | API Health Check | ApiHealthCheck.json |
| GET | /workdistribution/v1/skills | Lists Available Skills | AvailablesSkills.json |
| POST | /workdistribution/v1/tasks | Create a Task | TaskCreationReqRes.json |
| PATCH | /workdistribution/v1/tasks/taskId | Mark a Task as Complete | MarkTaskComplete.json |
| Common Errors | Common-API-Errors.json |
Sample Test Data - Request and Response are listed under "docs" directory.
- Docker Mongo Connectivity Fix
- Enable Unit Tests and Add Test Clients
- Logging
- Redis Connectivity Issue Fix
- Integration with Message Queue(Active MQ)/Streaming Middleware(Kafka)
- Event Bus with Verticles Developed in Multiple Languages
- Integration with PostgreSQL
- Integration with SaaS
- Integration with CouchBase
- EventBus Additional Microservices
