【问题标题】:How to create proxies with wild card paths in Azure api manager?如何在 Azure api manager 中使用通配符路径创建代理?
【发布时间】:2019-08-10 14:59:15
【问题描述】:

下午好,

我有一种情况,三个 swagger 文件将具有不同的资源,但它们属于同一个域。而且我不能将它们合并成一个单一的招摇,因为我们有很多这样的场景,并且管理一个招摇和单个 api 代理将是一个很大的开销。

例如:

我有 3 个具有以下路径和资源的 api

/supermarket/v1/aisles/{aisleId}/itemcategories

/supermarket/v1/aisles/{aisleId}/itemcategories/{itemcategoryId}/seasonedvegetabletypes

/supermarket/v1/aisles/{aisleId}itemcategories/{itemcategoryId}/seasonedvegetabletypes/{vegetablestypeId}/apples

以上3个都应该在3个不同的swagger文件中,所以我需要为上面创建3个api代理。

由于所有路径后缀“/supermaket”都相同,Azure API 管理器将不允许创建另一个具有相同路径后缀的 api 代理,因为它必须是唯一的。

所以要在 Apigee Edge (Google Edge) api 管理产品中实现这一点。我将有如下基本路径

/supermarket/v1 /supermarket/v1/aisles//itemcategories/ /supermarket/v1/aisles//itemcategories/*/seasonedvegetabletypes

这样我就可以避免唯一路径约束,也可以实现创建 3 个 api 代理。

但在创建 API 代理时,Azure API 管理器不接受 API 路径后缀字段中的“通配符”条目。

注意:

您可能建议将 3 个 api 组合到一个 swagger 文件中可能会解决问题,但我上面给出的示例只是 30% 的 swagger,我们有许多这样的路径将落入一个单一的业务领域,所以我们必须有它们在不同的 swagger 文件和不同的 api 代理中。

我们应该能够通过允许通配符或正则表达式进入 API 路径后缀来部署具有相同路径后缀的不同 API 代理。

非常感谢您为解决此问题提供的帮助。谢谢。

【问题讨论】:

    标签: azure-api-management


    【解决方案1】:

    目前这是一个无法解决的限制。让 APIM 为这些 URI 提供服务的唯一方法是将它们全部放在单个 API 下,不幸的是,这不是您想要的。

    【讨论】:

    • 感谢@Vitaliy。更改设计以匹配产品实施限制有点痛苦 :-( 但同意这是现在的情况。我们已经向 Microsoft 提出了这个问题,希望他们考虑在即将发布的版本中包含这个。
    猜你喜欢
    • 1970-01-01
    • 2022-09-26
    • 1970-01-01
    • 1970-01-01
    • 2021-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多