The Gateway project takes entire traffic onto it. It handles some basic logics such as Authorization then proxies the incoming request to related service.
The Gateway project does not implement complete JWT authorization. It has super-simple logic to handle authorization.
Gateway only checks your 'Authorization' header and service waiting it to be 'authenticated: true' otherwise it will block customer request.
Gateway does not implement Application Load Balancer. It leaves Load balancer things to server/cloud provider.
To test the gateway, you should run 'driver-location-service' and 'driver-matching-service' firstly;
driver-location-service
driver-match-service
then start the gateway to check everything is ok.
docker build -t bit-driver-api-gateway .
docker run -p 4050:8080 bit-driver-api-gateway
GET /match-svc/find-nearest/
GET /location-svc/nearest-driver-location/
curl --location --request GET 'http://localhost:4050/match-svc/find-nearest/' \
--header 'Authorization: Bearer authenticated: true' \
--header 'Content-Type: application/json' \
--data-raw '{
"longitude": 40.94289771,
"latitude": 29.0390297
}'
- Unit test
- Circuit-breaker