我们希望在我们的 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 可以更好地处理这个特定的用例,我准备换一个..