API网关如何工作?

时间:2012-07-04 14:51:20

标签: api gateways

API网关如何工作? API网关的典型组件是什么?是否有关于如何管理安全性,呼叫记录和治理的共同标准?

2 个答案:

答案 0 :(得分:60)

这是一个非常广泛的问题,因为有许多不同类型的网关(和管理解决方案)。从最广泛的意义上讲,网关是网络堆栈中的某个过滤器(由您或第三方托管),可以过滤您的API流量。有些过滤可能会发生:

  • 如果您在到达服务器之前使用CDN,则在CDN内。
  • 在由您重定向流量的第三方托管的代理中。
  • 在您自己的云中的专用计算机或运行代理软件(第三方,开源或内部)的本地基础架构中。
  • 在进行主要处理的流量之前,在应用程序堆栈的特定部分内。

通常,网关可以提供的功能类型可以包括:访问控制(过滤流量,以便只有经过身份验证/授权的流量通过),速率限制(限制API的每个客户端可以发送多少流量),分析/度量捕获和日志记录(跟踪API上发生的事情),安全过滤(检查传入消息的内容是否存在攻击,重定向/流量路由(根据发送者或请求将流量发送到您自己的基础架构中的不同端点)。 / p>

网关通常作为一组模块和过滤器工作,在流量高速流过时处理流量,您通常可以启用所需的模块/过滤器并控制其参数。实际上有很多不同的方法可以实现实现+各种供应商和开源系统可供选择。

我会尝试写这个中立的,因为我为3scale工作,提供商业和开源解决方案,但我鼓励你看看各种选项并得出你自己的结论!您的主要选择是:

  • 来自Apigee和。等供应商的内部部署专有网关 Layer7 - 这些通常是硬件或软件设备 在您的数据中心本地安装。
  • 云托管网关,来自Mashery,Apigee和WSO2 API Cloud等供应商,这些网关实际上通过其服务器重定向到API功能。
  • 插件/代理体系结构,如3scale(我工作),提供可在应用程序内部部署的软件模块,在Varnish等开源代理网关内部进行部署连接到CDN。
  • 开放式解决方案,例如APIAXLEWSO2,可在内部部署或在云中部署。

不同的方法有不同的工作方式,这取决于您的目标。在3scale中,我们显然偏向于我们的方法,因为它允许您在堆栈中的任何位置插入过滤代理 - 但是毫无疑问,每个供应商都会有他们的观点!

答案 1 :(得分:2)

通过类推,(对我而言)API网关的概念更容易理解。如果您想到的是办公大楼前部的接待台,它基本上可以路由呼叫,阻止意外的访客并确保包裹到达正确的位置。

这正是API网关在分布式应用程序中的角色。它接受请求并将其重定向到正确的服务。放入图像中,这就是它的外观。

What's an API Gateway?

基本上是接待台,在您的微服务和不同的客户端请求(浏览器,应用程序等)之间。在它们的工作方式,组成部分等方面,这完全取决于实现和要求。一些API网关处理身份验证和授权,另一些API网关处理和验证输入数据,或转换响应。有些提供监视信息,而有些全部。

如果您正在寻找更多的技术响应,史蒂夫(Steve)提供了构成该层的不同组件的详细信息。这也是the key benefits of an API Gateway上的一篇文章。