使用docker的API网关有哪些选项?

use*_*095 9 api gateway docker microservices tyk

我已经创建了几个RESTful微服务并对它们进行了对接.现在我想为他们建立一个基于Web的UI,并且能够创建用户并授予他们使用某些API的权限.

我知道我需要某种API网关.我的第一个想法是,我总是可以做那种暴力的方式:创建一些django应用程序,它将提供UI并代理所有API手动请求,但这似乎非常沉闷.也许有一些替代品?我已准备好了Tyk,但无法找到有关添加用户和授予权限的任何信息.

我可能可以创建一个可以作为API网关的应用程序,并通过编写一些可以对其进行建模的代码来自动代理请求.因此,例如,我基本上需要外部URL与实际api url和一些授权逻辑之间的映射.也许有类似的东西?

mil*_*lan 13

我正在寻找类似的东西,包括支持速率限制,UI控制台等.它归结为一些免费增值工具,如:

还有一些开源的:

我决定使用tyk,因为它有一个很好的UI控制台和可靠的文档.所有这些都在Quora上被提及,当你想去购物时这很好:)


And*_*nko 5

如果您喜欢亲自动手,您可以很轻松地实现自己的简化 API 网关。我相信这种方法完全适合微服务范式——实现功能有限的简单服务,只做一件事,但做得很好。

我写了一个关于这个主题的教程(使用 Node.js 为 Docker 化微服务实现简单的 API 网关)。我的示例大约有 100 行 JavaScript 代码,它使用node-docker-monitor来监听 Docker 事件,并使用http-proxy来处理来自客户端的 HTTP 请求。

https://memz.co/api-gateway-microservices-docker-node-js/

或使用 SkyDNS 和 Nginx 的替代解决方案

https://memz.co/reverse-proxy-nginx-docker-microservices/


cel*_*epo 1

除非我弄错了(我对容器有点陌生)——我认为来自Amazon AWS的所有这些解决方案(AWS API Gateway本身位于其中任何一个的前面以供公共访问)也属于免费增值解决方案的类别用于在公共 API 网关后面运行/编排 Docker 容器:

以下是有关使用 AWS API Gateway 的 AWS 博客:

根据您的要求,其中任何一个(也来自 Amazon AWS)还应该满足用户、帐户、权限、授权等要求:

顺便说一句,我认为使用其中任何一个进行架构设计都不需要任何中间管理/计算/服务器(尽管仍然可以出于任何目的插入来自AWS EC2和/或AWS Lambda 的计算),因为它们都是 AWS服务[管理其功能]自身。