Estafet Microservices Scrum Gateway API
What is this?
This microservice is serving as a API Gateway in Estafet Scrum Demo Application. The API Gateway is used as a single entry point for all microservices. The API Gateway handles requests and then they are proxied/routed to the appropriate service. It's important not to confuse a microservice API gateway with API management. What a microservices API Gateway provides is a front end used to access the microservices underneath—there is no support for publishing, promoting, or administering services at any significant level.
In our implementation we use Camel routes to create a proxy between UI and the services. And our Gateway do care about fault tolerance, that's why we implemented Hystrix circuit breaker inside our gateway. Also because our service do care if our service pods inside OpenShift are alive, that's why we use DiscoveryClient and we check our pods health regularly
Each microservice has it's own git repository, but there is a master git repository that contains links to all of the repositories here.
Getting Started
You can find a detailed explanation of how to install this (and other microservices) here.
Supported Camel Routes
#NOTE: Currently Camel Routes aren't implemented for all microservices
Project Microservice
To retrieve all projects
GET http://localhost/project-api/project
To retrieve project with specific id
GET http://localhost/project-api/project/id
To create a new project
POST http://localhost/project-api/project
Sprint Microservice
To retrieve sprint with specific id
GET http://localhost/sprint-api/sprint/id
To retrieve all project sprints by passing project id
GET http://localhost/sprint-api/project/{id}/sprints
Story Microservice
To retrieve specific story by passing story id
GET http://localhost/story-api/story/id
To retrieve all project stories by passing project id
GET http://localhost/story-api/project/{id}/stories
To create new project story by passing project id
POST http://localhost/story-api/project/{id}/story
Gateway Block Schema
Environment Variables
ENABLE_TRACER = false
PROJECT_GATEWAY_SERVICE_URI = http://gateway.microservices-scrum.svc:8080/project-api
SPRINT_GATEWAY_SERVICE_URI = http://gateway.microservices-scrum.svc:8080/sprint-api
STORY_GATEWAY_SERVICE_URI = http://gateway.microservices-scrum.svc:8080/story-api