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

alt tag

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