首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >特定API被添加到API管理中的多个产品,想要在API级别设置‘需要订阅’

特定API被添加到API管理中的多个产品,想要在API级别设置‘需要订阅’
EN

Stack Overflow用户
提问于 2021-06-03 14:32:55
回答 2查看 144关注 0票数 2

我的应用程序接口管理实例中有几个产品,我们称它们为Product 1Product 2

这两个产品都添加了一个名为Inventory的接口。

对于Product 1,我将Subscription required设置为true

对于Product 2,我将Subscription required设置为false

到目前为止,这工作得很好。

现在,我也在我的Inventory应用编程接口上将Subscription required标志设置为true。我想强制人们在调用此接口时指定有效的订阅密钥。

但我注意到的是,API级别的这个标志并没有被强制执行(正确吗?)。我仍然可以在没有订阅密钥的情况下调用Inventory应用程序接口。

我的猜测是,Product 2策略否决了在API级别设置的Subscription required设置。这是正确的吗?

我的实际问题是,如何强制执行特定的API,该API始终需要有效的订阅密钥,同时仍然拥有一个“开放”产品?

EN

回答 2

Stack Overflow用户

发布于 2021-06-04 09:13:08

只要API附加到开放产品上,您就可以随时调用它,而无需订阅,这是经过设计的。如果要强制发送订阅密钥,则必须将其从打开产品中删除,或者将其标记为需要订阅。

由于以下原因,添加策略实际上是低效和肮脏的

您需要跟踪所有订阅密钥值(已删除、已添加、已删除( regenerated...etc).,

  1. )

  1. 检查策略之前的所有其他策略将在请求被拒绝之前执行。

  1. 如果您决定更改订阅密钥头名称,则必须检查所有检查策略并对其进行修改。
票数 2
EN

Stack Overflow用户

发布于 2021-06-03 16:06:46

我在我的侧面测试了它,也和你的功能一样。当我使用两个产品(一个启用Requires subscription,另一个禁用Requires subscription)时,它们都有一个api。即使我开启了Subscription required,接口也不会检查订阅密钥。

作为解决方法,您可以在您的<outbound>接口中添加一个策略,如下所示。添加的策略用于手动检查订阅密钥。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67816473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档