API Gateways & API Managements

API Gateways são como proxies HTTP inteligentes que intermediam todas as requests HTTP dos softwares existentes. São inteligentes porque tem capacidade de processar as requests, alterá-las e filtrá-las com base em esquemas de autenticação, autorização e accounting (AAA).

Eles também tem as mesmas funcionalidades de softwares Proxies Reversos (Reverse Proxy) e Balanceadores de Carga (Load Balancers)

Fiz algumas pesquisas dos API gateways mais famosos e de suas funcionalidades. Dê uma olhada na tabela abaixo.

*Estrelas do github coletadas em 23/05/2020

NomeLinguagens/FerramentasAutorização?Billing?Rate Limiting?Dashboard?GitHub Stars
API UmbrellaLua, Ruby, Nginx, OpenRestySimNãoSimFree1800
Gravitee.ioJava, SpringSim?Sim?1400
Netflix ZuulJava11900
Spring Cloud GatewayJava, Spring Boot, Spring Webflux, Project Reactor, Redis (opcional)??SimNão3500
Kong CEC, Lua, Nginx, OpenResty, PostgreSQL (opcional), Cassandra (opcional)Sim?SimPago ou Konga (free)31800
Apache APISIX?
express-http-proxyNodeJS + ExpressDIYDIYDIYNão1000
node-http-proxyNodeJSDIYDIYDIYNão12700
Fusio??SimSim?1100
KrakenD CEGo????603
TykGo, Redis???Pago7300
apiman?????550
WSO2 API Manager?????675
HAProxyC, LuaDIYDIYSimNão2800
EnvoyC++, LuaDIYDIYSim19500
IstioEnvoyDIYDIY30200
OpenRestyC, Nginx, LuaDIYDIYSimNãoNginx 16300
Openresty
10400
Go (puro)GoDIYDIYDIYNão
JanusGoSimDIYSimNão2300

Referências

11 Opensource API Gateways
https://techbeacon.com/app-dev-testing/you-need-api-management-help-11-open-source-tools-consider

Discussão sobre os API Gateways
https://news.ycombinator.com/item?id=18785067

14 Opensource API Gateways
https://geekflare.com/api-gateway/

Nginx + OpenResty

Hello World com OpenResty
https://blog.openresty.com/en/or-hello-world/

Criando módulos Lua com OpenResty
https://blog.openresty.com/en/or-lua-module/

Criando um API Gateway com OpenResty
https://medium.com/@tumulr/building-an-api-gateway-with-nginx-lua-e3dff45e6e63
https://medium.com/@tumulr/enhancing-api-gateway-through-openresty-and-lua-6c156785f0f4

Tutorial Openresty Digital Ocean
https://www.digitalocean.com/community/tutorials/how-to-use-the-openresty-web-framework-for-nginx-on-ubuntu-16-04

HAProxy

HAProxy as an API Gateway
https://www.haproxy.com/blog/using-haproxy-as-an-api-gateway-part-1/
https://www.haproxy.com/blog/using-haproxy-as-an-api-gateway-part-2-authentication/
https://www.haproxy.com/blog/using-haproxy-as-an-api-gateway-part-3-health-checks/

NodeJS

API Gateway em NodeJS, uma perspectiva de um desenvolvedor
https://medium.com/sharenowtech/node-js-api-gateway-a-developer-perspective-8defe575ed21

API Gateway usando Express + http-proxy-middleware + http-proxy
https://medium.com/geekculture/create-an-api-gateway-using-nodejs-and-express-933d1ca23322

API Gateway usando express-http-proxy
https://medium.com/caquicoders/criando-um-simples-api-gateway-com-nodejs-e-express-2ec5369e975d

Biblioteca Express Gateway (abandonada)
https://github.com/ExpressGateway/express-gateway

Java e Kotlin com Spring

Spring Cloud Gateway
https://spring.io/projects/spring-cloud-gateway

Tutorial Spring Cloud Gateway
https://lalverma.medium.com/spring-boot-microservices-api-gateway-e9dbcd4bb754

Tutorial Spring Cloud Gateway 2
https://medium.com/@niral22/spring-cloud-gateway-tutorial-5311ddd59816

Tutorial Spring Cloud Gateway 3
https://aboullaite.me/spring-cloud-gateway/

Go

Criando um API gateway com Go puro
https://itnext.io/why-should-you-write-your-own-api-gateway-from-scratch-378074bfc49e

Documentação do Janus
https://hellofresh.gitbooks.io/janus/content/

You should also read: