我们正在考虑利用AWS api网关更好地管理API。但是,在企业级别,最佳实践是什么?是否有必要为所有应用程序团队使用一个通用的API网关(在这种情况下,我们可能需要该通用API网关的管理员,这会增加开销),或者每个应用程序团队都应该构建自己的API网关并管理其API电话吗?
希望有个人分享他们的经验。
答案 0 :(得分:0)
我已将AWS API网关用于不同的Web /移动应用程序项目。让我尝试在这里一个接一个地回答您的问题。
基于限制的设计
API网关具有局限性。您可以基于这些限制找到答案。 例如:对“每个API资源”有一个软限制,并将其设置为300,可以增加到最大500。这意味着将来,如果需要超过500个资源,则需要创建新的API网关。
因此,最好在逻辑上隔离API,并根据目的使用不同的API网关。
REST API,WebSocket API和WebSocket回调API上每个区域的油门限制被限制(软)为每秒10,000个请求(RPS),并且令牌桶算法提供了额外的突发容量,最大存储容量为5,000请求。
因此,需要根据流量设计API网关。
有许多这样的限制https://docs.aws.amazon.com/apigateway/latest/developerguide/limits.html
基于功能的设计
API网关使用OPEN API标准并促进XML / JSON导入和导出功能。因此,如果使用来自应用程序的大型文件创建新的API网关,最好不要将其与其他应用程序混合。
有许多功能,例如1)启用API缓存,2)启用限制,3)Web应用程序防火墙4)客户端证书,这对于企业中的所有APis都不通用。同样,最好是根据需求使用单独的API。
AWS API网关采用了不同的日志记录机制,每个API网关实现都需要量身定制的方法。
SDK生成对于移动开发非常方便,再次无需使用将所有api捆绑到一个SDk中并提供访问权限。
因此,我的建议是针对基于特定需求的企业使用多个API网关。