1

我们希望在我们的 Web API 之前使用 gravitee 作为 API 网关,但我们需要能够提供根据业务特定指标进行过滤的计划,该指标在所有 API 调用的响应中一起发送。

例如,我们的 API 在 HTTP 标头中返回被查询的数据数量(根据数据库唯一点):

> GET /api/my/data

Response:
X-Number-Of-Points: 2456 ## the number of points that were returned
Content-Type: application/json

{
"points":[...]
}

所以本质上,我想有这样的计划:

  • 每月 1.5 亿点
  • 每月 10k 请求或 50M 点

我查看了Gravitee 的文档,但我不完全确定我们能做到这一点。

他们的“策略”插件似乎很有用,但我觉得我必须实现整个“从标题中提取 nb 点,将其存储在数据库中,然后实现 Gravitee 可以点击查看的插件如果这个特定的客户已经用尽了他的计划”。

也许我没有正确阅读文档,但我认为如果 Gravitee 可以进行速率限制和 API-call-number-per-month 计划,它应该能够收集整数指标并将其应用于计划?

你们有这方面的经验吗?

我对 Gravitee 本身并不特别感兴趣,但从我对 API 网关领域的有限探索来看,它似乎是其余的(Kong、APIGee 等)中最成熟的。如果另一个免费 APM 可以更好地处理这个特定的用例,我准备换一个..

4

1 回答 1

0

抱歉在这里有点晚了。

在现有的速率限制/配额策略中,您可以为调用提供权重(默认情况下,权重 = 1)。

我从您的案例中看到的唯一区别是,据我所知,权重来自响应。

我想到的问题是:如果网关正在查看响应以获取权重,我们应该如何管理身份验证问题(来自网关),这是否意味着计数器没有递减?

于 2020-01-24T23:05:58.157 回答