【发布时间】:2021-08-21 06:47:00
【问题描述】:
我的 API 管理实例中有几个产品,我们称它们为 Product 1 和 Product 2。
这两款产品都添加了一个名为Inventory的API。
对于Product 1,我已将Subscription required 设置为true。
对于Product 2,我已将Subscription required 设置为false。
到目前为止,这很好用。
现在,我还在 Inventory API 上将 Subscription required 标志设置为 true。我想强制人们在调用此 API 时指定有效的订阅密钥。
不过,我注意到的是,API 级别的这个标志没有被强制执行(正确吗?)。
我仍然能够在没有订阅密钥的情况下调用 Inventory API。
我的猜测是,Product 2 政策推翻了在 API 级别设置的Subscription required 设置。这是正确的吗?
我的实际问题是,如何强制执行始终需要有效订阅密钥同时仍然拥有“开放”产品的特定 API?
【问题讨论】:
-
Emm,根据我的搜索,我发现产品用于grouping apis to publish,那么如何在两个产品中制作一个api,一个需要订阅密钥而另一个不需要?一个api只有一个url。我的测试结果是,当检查
Subscription required时,url需要订阅密钥,而不检查时不需要密钥。 i.stack.imgur.com/zwbpM.png我忽略了一些重要的事情吗? -
我们确实在使用它来对 API 进行分组。我们有几个 API 的“客户”,并为每个客户创建了一个产品。目前,我们正在过渡到使用订阅,并且我们有 1 个不需要订阅的产品。但是,我们希望有几个 API 具有有效的订阅密钥。我们希望这些 API 在产品内部用于管理目的,但为访问这些 API 的各个用户/进程授予订阅。
-
您是否创建了多个具有相同后端端点的 api 实例?
-
目前我们使用的是相同的 API 实例。但我认为你在做某事。我们可以(或者应该)创建多个 API 实例来规避这个问题。不过,这不是我们目前可以接受的解决方案/解决方法。我希望特定 API 的(更精细的)设置会覆盖产品中的设置。
标签: azure azure-api-management