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

时间:2015-07-21 18:13:46

标签: api docker microservices gateway tyk

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

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

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

3 个答案:

答案 0 :(得分:13)

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

和一些开源的:

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

答案 1 :(得分:2)

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

我已经编写了一个关于这个主题的教程(使用Node.js为Dockerized微服务实现简单的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/

答案 2 :(得分:0)

除非我弄错了(我对容器有点陌生)-我认为 Amazon AWS 的所有这些解决方案(AWS API Gateway本身都位于其中公共访问)也将属于免费解决方案类别,用于在公共API网关后运行/编排Docker容器:

以下是与它们一起使用AWS API Gateway的AWS博客:

并且根据您的要求,这两个(同样来自Amazon AWS)也应满足用户,帐户,权限,授权等方面的要求:

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