API限制最佳实践

时间:2013-07-19 17:54:07

标签: web-services api soap throttling

我有一个SOAP api,我希望在“y”时间内收到“x”多次调用后,以用户为基础限制访问。

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

关于如何实施限制解决方案的其他任何人?问题包括:

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

1 个答案:

答案 0 :(得分:3)

为了它的价值,我在处理其他一些生产项目之后回答了这个问题。

  1. 家酿:如果您有自己的算法要实施,在执行API方法代码之前使用Spring AOP切换方法调用是一种自制方法。这最终会非常优雅和灵活,因为您可以在决定如何处理请求之前捕获大量元数据。
  2. API管理服务:如果您正在谈论生产系统并且您有预算,那么最好的方法就是将其委托给API管理层,例如ApigeeMashery
  3. 优势是它将问题分开,因此更容易更改,让您只关注您的API。如果涉及业务利益相关者并且您需要良好的用户界面和术语词典,这将特别有用。

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

    希望这有助于某人!