6

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

在四处搜索之后,第一个考虑因素(显然)是考虑何时限制用户的参数。但是,我看不到用于实施此类解决方案的最佳实践/示例的方式。我确实看到了有意义的漏桶方法。我不得不相信还有更多的想法。

关于您如何实施节流解决方案的任何其他接受者?问题包括:

  • 是否有任何框架提供限制 web api 的功能(例如 Spring 等)?
  • 在我看来,您需要为每个用户存储访问信息。您如何最大限度地减少每次调用的数据库开销?
  • 你甚至需要访问数据存储来实现这一点吗?
4

1 回答 1

4

对于它的价值,我在从事其他一些生产项目后回答了这个问题。

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

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

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

希望这对某人有帮助!

于 2014-10-31T16:01:27.243 回答