API限制最佳实践

alp*_*486 5 api soap web-services throttling

我有一个SOAP api,我希望在"y"的"y"时间内收到许多调用后,以用户为基础限制访问.

在搜索之后,#1考虑(显然)是考虑用于何时限制用户的参数.但是,我没有看到实施此类解决方案的最佳实践/示例.我确实看到了漏水桶方法,这是有道理的.我不得不相信有更多的想法.

如何任何其他考生去实现你的节流的解决方案?问题包括:

  • 是否有任何框架为web apis中的限制提供功能(例如Spring等)?
  • 在我看来,您需要存储每个用户的访问信息.如何最小化执行此每次调用的数据库开销?
  • 您是否需要访问数据存储区来实现此功能?

alp*_*486 4

就其价值而言,我在完成其他一些制作项目后回答了这个问题。

  1. 自制:如果您有自己的算法要实现,那么在执行 API 方法代码之前使用Spring AOP在方法调用周围切入是一种自制方法。这最终非常优雅和灵活,因为您可以在决定如何处理请求之前捕获大量元数据。
  2. API 管理服务:如果您谈论的是生产系统并且您有预算,那么最好的方法可能是将其委托给 API 管理层,例如ApigeeMashery

优点是它分离了关注点,因此更容易更改,并且允许您只关注 API。如果涉及业务利益相关者并且您需要良好的 UI 和术语词典,这尤其有用。

缺点当然是成本和供应商锁定。

希望这对某人有帮助!