2017-01-22 9 views
1

Я просто хочу ограничить скорость запросов API-запросов для каждого плана аккаунта, так что у нас есть пользователи, и у каждого пользователя есть план, который имеет некоторые ограничения на количество запросов API в день. можно сделать.Как сделать политику ограничения скорости API в loopback

Итак, как я могу сделать политику ограничения API в loopback 3.x.

Благодаря

ответ

1

такая политика может только * быть сделаны с базой данных, такие как Redis/Memcached. Для моих проектов я полагаюсь на redback, который основан на Redis. У этого есть встроенный помощник RateLimit (среди других), и он заботится о некоторых состояниях расы и атомных транзакциях.

* если у вас нет базы данных, вы можете сохранить его в памяти (в хэш или массив) и использовать интервалы, чтобы смыть его, но я бы с Redback :)

1

Это политика контроля доступа.

Вы можете справиться с этим по специальным ролям, созданным role resolver.

Создав пользовательскую роль и проверив обратный вызов распознавателя, если текущий пользователь превысил лимит скорости или нет.

2

Если вы планируете использовать Loopback на хостинге IBM Bluemix, вы можете использовать их службу API Connect, которая включает политики на основе плана клиента с API level throttling, мониторинг, биллинг API и многие другие функции управления API.

StrongLoop API Microgateway используется API Connect, но в настоящее время открыт с источника (апрель 2017 г.).

Поскольку Loopback - это всего лишь слой поверх Express, вы также можете использовать Express lib.

Для ограничения скорости на одном сервере автономный Loopback вы можете использовать один из этих Экспресс LIBS:

Если вы планируете использовать это на кластере Loopback вам нужно будет хранить счетчики вызовов API как часть состояния общего сервера для каждого пользователя или сеанса пользователя. Оружие выбора для этого - Redis, так как это высокая производительность в хранилище данных в памяти, которое можно масштабировать. предельной скорости Экспресс ЛИЭС, которые поддерживают Redis включают в себя:

Наконец, вы можете также осуществлять ограничение скорости на обратный прокси-сервер. См. Nginx Rate Limiting