我们的基础架构中有许多REST服务,这些服务是使用不同的技术(Java,Go,Ruby,NodeJS)构建的,但它们都有一些常见的要求,如身份验证,授权,速率限制,分析等,所以我们正在考虑在这些API前面有一个API网关,以便所有通信只通过它进行。 我开始了解市场上的一些开源产品,如Strongloop/Loopback,WSO2,TYK,APIAXLE& 3scale但其中大部分看起来都没有经过时间测试,可以用于生产。我现在想到的几件事情都没有了:
答案 0 :(得分:1)
如果我提到WSO2 API Manager,
我知道很多人在制作中使用它并提供有关它的良好反馈。
是。您可以使用API Manager进行速率限制。 API Manager具有称为油门层的功能。您可以使用该功能进行速率限制。对于身份验证和授权等其他功能,您必须使用带有WSO2 identity server的API Manager。对于分析功能,您必须使用API Manager WSO2 Business Activity Monitor。集成所有这些产品,您可以实现您提到的功能。
答案 1 :(得分:1)
因为我在那里工作,我可以回答3scale。
3scale是一个完整的API management platform,可为您的API实施授权,速率限制和分析。我们提供不同的集成选项,其中最受欢迎的是我们的API网关,可以由我们托管或部署在内部。
这是一个基于Nginx的网关,部署在API服务器前面,通过访问3scale API来授权来电。网关提取传入呼叫的API密钥和正在调用的端点,并检查是否应授权此特定请求(即有效密钥,限制内的使用,有效端点等)。
我们的API网关的一个关键部分是授权是异步执行的,因此它不会影响API用户感知的延迟。
关于您的具体问题:
我们有600名客户在生产中使用3scale。这包括流量非常大的API,其中一些您可以查看和阅读here。
我想主要的选择是使用API管理平台还是自己实现这些功能。使用像3scale这样的东西的优势在于我们专注于这个问题,除了基本授权和速率限制之外,我们还提供其他非常有用的功能:我们托管的开发人员门户,您的API用户可以在其中注册和管理他们的密钥,计费系统您可以使用它为您的API提供付费计划,支持OAuth2等高级身份验证模式以及您可以在我们的网站上阅读的其他模式。
您还可以将API中的3scale与我们的软件库集成。但是,由于您有多个用不同语言编写的API,我建议使用API网关,因为您只有一个集成点(因此更易于维护)。
如果你自己测试一下,最好的情况就是这样。我们有一个没有时间限制的免费计划,所以你可以从那里开始。