如何在 Azure api 管理器中创建具有通配符路径的代理?

How to create proxies with wild card paths in Azure api manager?

下午好,

我有这样的情况,三个 swagger 文件将具有不同的资源,但它们属于同一个域。而且我无法将它们合并为一个 swagger,因为我们有很多这样的场景,并且管理一个 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//项目类别/ /supermarket/v1/aisles//itemcategories/*/seasonedvegetabletypes

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

但是 Azure API 管理器在创建 API 代理时不接受 "wildcard" 条目进入 API 路径后缀字段。

注:

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

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

非常感谢您帮助解决这个问题。谢谢

此时这是一个无法解决的限制。使 APIM 服务于这些 URI 的唯一方法是将它们全部放在单个 API 下,不幸的是,这不是您想要的。