Я использую экспресс-газ, чтобы ограничить количество вызовов API на IP-адрес в день.Я хочу установить параметр «стоимость» в массиве «параметры» на основе значения в запросе API.(см. комментарий «ВОПРОС» в коде).
Таким образом, параметр в запросе определяет стоимость вызова API по отношению к счетчику максимального значения в день (дроссель позаботится об этом).Проблема в том, что throttle (options) вызывается в качестве аргумента app.post .. поэтому уже слишком поздно его устанавливать?
Как мне это сделать?Я думаю, что обратный вызов, но я не уверен, как реализовать.Я попытался сделать 2 последовательных вызова API, но это может привести к проблеме синхронизации.Пожалуйста посоветуй.Спасибо.
Код:
var throttle = require("express-throttle");
var express = require("express");
var app = express();
var options = {
"burst": 100,
"period": "1d",
// "cost" : 3; <<< This needs to be set to a value from the request.
"on_throttled": function(req, res, next, bucket) {
// Set responsemessage when maximum has been reached.
res.status(503).send("Come back tomorrow.");
}
};
app.get("/throttletest", throttle(options), (req, res, next) => {
// QUESTION : I need to set the "cost" parameter to res.body.userBurst.
res.send("Ok Throttletest");
});