gpt4 book ai didi

rest - 在 Azure API 管理中管理多个 REST API

转载 作者:行者123 更新时间:2023-12-02 03:08:03 25 4
gpt4 key购买 nike

我正在使用微服务构建 REST API,这意味着我有不同的服务来提供不同的资源。假设我有以下服务:

ServiceA 正在通过以下网址提供资源 resourcesAresourcesA1
https://my-internal-endpoint-for-serviceA/resourcesA
https://my-internal-endpoint-for-serviceA/resourcesA1

ServiceB 正在通过以下网址提供资源 resourcesBresourcesB1
https://my-internal-endpoint-for-serviceB/resourcesB
https://my-internal-endpoint-for-serviceB/resourcesB1

现在,我想在 Azure API 管理中管理它们。要发布它们(通过从服务导入 Swagger 文档),API 管理门户需要一个用于发布的 API 路径。因此,serviceA和serviceB可以如下发布:
https://my-api-azure-api.net/serviceA/resourcesA
https://my-api-azure-api.net/serviceA/resourcesA1
https://my-api-azure-api.net/serviceB/resourcesB
https://my-api-azure-api.net/serviceB/resourcesB1

但是为了更多地基于资源的 API 管理,我希望发布的 API 更像下面这样:
https://my-api-azure-api.net/resourcesA
https://my-api-azure-api.net/resourcesA1
https://my-api-azure-api.net/resourcesB
https://my-api-azure-api.net/resourcesB1

不幸的是,API 管理不允许我将 2 个 API(serviceA 和 serviceB)发布到同一路径(本例中为根路径)。我不想将服务名称(或等效名称)放在 URL 路径中,因为服务名称是其提供的资源名称的重复项。我该如何解决这个问题?

最佳答案

Azure API 管理策略可以在这方面为您提供帮助,特别是能够转发请求的控制流。文档在这里:https://learn.microsoft.com/en-us/azure/api-management/api-management-policy-reference

我会通过将资源设置为单个 API,通过 swagger 添加一个 API,然后将其他服务添加到该 API 中以使其完整(因为您希望它显示为单个完整服务)来解决此问题。一旦到位,您就可以自由应用这些政策。

注意:您可能需要通过以下方式扩展资源路径

https://my-api-azure-api.net/mynewservice/resourcesA
https://my-api-azure-api.net/mynewservice/resourcesA1
https://my-api-azure-api.net/mynewservice/resourcesB
https://my-api-azure-api.net/mynewservice/resourcesB1

关于rest - 在 Azure API 管理中管理多个 REST API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41457133/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com