【问题标题】:Azure api management Version routing duplicaiton to functionAzure api管理版本路由重复功能
【发布时间】:2023-03-19 22:40:02
【问题描述】:

API 开发有一个奇怪的问题,只是想知道是否有人知道解决方案/我做错了什么?

我有一个 API http://company/api/products,它是一个正常工作的天蓝色函数,并在 api 管理中设置为单个 api。 使用 azure api 管理,我创建了一个新版本,其版本标识符为 v2,因此链接变为 http://company/api/v2/products

但我发现这个链接仍然指向原始 API,而不是新版本(下面的路由 c# 代码)。我发现如果我在新版本中将我的产品 api 的前端 URL 更改为 /v2/products 而不是 /products,它确实有效,但这意味着我的 URL 现在是 http://company/api/v2/v2/products,这不是我想要的。

我可以创建一个没有标识符的新版本(也许?)并手动设置每个 url 的路径,但希望新版本也能创建新路由,出于维护原因,我更愿意这样做

在我的 c# 代码/函数中,我有一个带有 httpTrigger 的新方法,看起来像这样;在本地它可以 100% 正确运行(或在 /v2/v2/products 上运行)

[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "v2/products")] HttpRequest request,

好像根本没有在路由中使用版本标识符,是不是我遗漏了一些东西来获取它?

【问题讨论】:

    标签: azure-functions azure-api-management


    【解决方案1】:

    在 API Management Publisher 门户中,您可以将新版本的后端 API URL 更新为http://{backend api base url}/v2

    这样,任何发往后端 api 的请求都将被正确路由。

    【讨论】:

    • 但随后 api 标识符使其成为 /v2/v2/
    • API 标识符是什么意思?通过上述操作,我们在后端调用的路径中设置版本标识符。由于我们在修改路由设置,所以使用API​​管理前端API url的用户不会看到两个v2s
    猜你喜欢
    • 2020-11-25
    • 2018-12-17
    • 1970-01-01
    • 2020-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多