如何在环回

时间:2017-01-22 14:13:16

标签: node.js rest express loopbackjs strongloop

我只想根据帐户计划制定API请求率限制,因此我们假设我们有用户,并且每个用户都有一个计划,该计划对每天可以生成的API请求数量有一些限制。

现在,我如何在loopback 3.x中制定API限制策略。

由于

3 个答案:

答案 0 :(得分:5)

如果您计划在IBM Bluemix托管上使用Loopback,您可以使用他们的API Connect服务,其中包括基于客户计划的策略API level throttling,监控,API计费和许多其他API管理功能

API Connect使用

StrongLoop API Microgateway,但现在开源(2017年4月)。

由于Loopback只是Express上的一个层,您可以选择使用Express lib。

对于单个独立Loopback服务器的速率限制,您可以使用以下Express库中的一个:

如果您计划在Loopback服务器群集上使用此功能,则需要将API调用计数存储为每个用户或用户会话的共享服务器状态的一部分。选择的武器是Redis,因为它在内存数据存储中具有高性能,可以缩放。速率限制支持Redis的Express库包括:

最后,您还可以对反向代理实施速率限制。见Nginx Rate Limiting

答案 1 :(得分:1)

这样的策略只能用数据库进行,例如redis / memcached。对于我的项目,我依赖于基于Redis的redback。它有一个内置的RateLimit助手(以及其他),它负责一些竞争条件和原子事务。

*如果您没有数据库,可以将其存储在内存中(在散列或数组中)并使用间隔来刷新它,但我会使用redback :)

答案 2 :(得分:1)

这是一种访问控制策略。

您可以通过role resolver创建的自定义角色来处理此问题。

创建自定义角色并在当前用户超出速率限制时检入该解析器回调。