All Projects → suadev → go-microservices-and-krakend-api-gateway

suadev / go-microservices-and-krakend-api-gateway

Licence: other
This is a shopping basket workshop that shows how to use KrakenD API Gateway.

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to go-microservices-and-krakend-api-gateway

lura
Ultra performant API Gateway with middlewares. A project hosted at The Linux Foundation
Stars: ✭ 5,159 (+11625%)
Mutual labels:  api-gateway, krakend
Krakend
Ultra performant API Gateway with middlewares. A project hosted at The Linux Foundation
Stars: ✭ 4,752 (+10700%)
Mutual labels:  api-gateway, krakend
aws-swaggerui
Serverless Swagger UI for API Gateway
Stars: ✭ 26 (-40.91%)
Mutual labels:  api-gateway
example-step-functions-integration-api-gateway
Example application using the new Step Functions integration with API Gateway. It developers to call API Gateway REST APIs and API Gateway from a Step Functions workflow.
Stars: ✭ 17 (-61.36%)
Mutual labels:  api-gateway
mangum-cli
CLI tools for use with Mangum
Stars: ✭ 14 (-68.18%)
Mutual labels:  api-gateway
super-serverless-sample
Backend serverless que simula o sistema de votação do BBB
Stars: ✭ 30 (-31.82%)
Mutual labels:  api-gateway
api-front
api统一前端、转发代理、协议分析、流量复制
Stars: ✭ 97 (+120.45%)
Mutual labels:  api-gateway
shim
HTTP Handler shim for Go projects running on AWS Lambda
Stars: ✭ 64 (+45.45%)
Mutual labels:  api-gateway
cv4pve-api-dotnet
Proxmox VE Client API .Net C#
Stars: ✭ 25 (-43.18%)
Mutual labels:  api-gateway
okta-api-center
Get up and running quickly with Okta's OAuth as a Service and your favorite API Gateway.
Stars: ✭ 58 (+31.82%)
Mutual labels:  api-gateway
linkpe
Linkpe is a Node.js based API🐳 to generate shareable UPI Payment links
Stars: ✭ 22 (-50%)
Mutual labels:  api-gateway
nestjs-graphql-serverless
Boilerplate for using NestJS with GraphQL (Code-First) on serverless environment (AWS Lambda)
Stars: ✭ 64 (+45.45%)
Mutual labels:  api-gateway
hango-gateway
Hango API Gateway, build on Envoy & Istio.
Stars: ✭ 306 (+595.45%)
Mutual labels:  api-gateway
demo-serverless-aspnetcore
ASP.Net Core 3.1 on AWS Lambda demo
Stars: ✭ 22 (-50%)
Mutual labels:  api-gateway
crank4go
API Gateway implemented in Golang
Stars: ✭ 124 (+181.82%)
Mutual labels:  api-gateway
webpack-aws-lambda
AWS Lambda that runs webpack and output the bundle.js file
Stars: ✭ 12 (-72.73%)
Mutual labels:  api-gateway
rust-wildbow-scraper
Automatically scrapes wildbow's web serials and compiles them into ebooks
Stars: ✭ 64 (+45.45%)
Mutual labels:  pact
pact-workshop-dotnet-core-v1
A workshop for Pact using .NET Core
Stars: ✭ 66 (+50%)
Mutual labels:  pact
cfn-api-gateway-custom-domain
API Gateway custom domains as CloudFormation resources, backed by Let's Encrypt
Stars: ✭ 17 (-61.36%)
Mutual labels:  api-gateway
3scale-security-oidc-demo
Securing APIs with OpenID Connect using 3scale API Management and Red Hat Single Sign On
Stars: ✭ 25 (-43.18%)
Mutual labels:  api-gateway

Go Restful Microservices and KrakenD API Gateway Workshop

This is a shopping basket workshop that shows how to use KrakenD API Gateway.

Consist of 5 microservice and API Gateway.

Token based Authentication.

Raw access token is created by the Identity Service. (json model)

This raw access token is signed and verified by KrakendD API Gateway. (bearer token)

Services communicate with each other asynchronously through Kafka.

Order Service makes an HTTP Request to Customer Service to get basket items.

Customer Service keeps a local copy of a subset of user and product data.

Run in Release Mode & Test

  • Run 'docker-compose up' in the root directory and wait for all containers to get ready.

  • Execute db_all.sql to create databases of microservices when the Postgres container get ready. Make sure all DBs are created. (tables will be created by auto-migration)

  • 13 containers will be created. Service containers (customer_service, identity_service, etc.) need to be started manually due to the need to wait for the Postgres container to get ready to accept DB connections. (wait-for-it.sh is used for the only Kafka for waiting zookeeper to get ready.)

  • Use the Postman collection to play with KrakenD. ( _postman_collection/Go_Microservices_KrakenD.postman_collection.json )

Containers

Postman Collection

Use KrakenD-* requests to play with KrakenD API Gateway. If you want to debug an individual service, run the service in debug mode and use the requests under the Direct Access folder as shown below.

Run in Debug Mode

In debug mode, you skip KrakenD, so KrakenD is not going to sign the bearer token and not going to inject in the request header as the 'User_Id' key. You need to add the 'User_Id' key as a request header for 'Add to Basket' and 'Create Order' requests. (Check the postman collection requests which are under the 'Direct Access' folder. )

For VsCode Users: Select 'All' configuration on Debug panel and start debugging. All services will be up and running in debug mode.

Tool Set

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].