【问题标题】:How to pass parameters in API request to back-end URL with Azure APIM?如何使用 Azure APIM 将 API 请求中的参数传递到后端 URL?
【发布时间】:2019-11-30 12:37:49
【问题描述】:

我正在尝试使用 Azure API 管理中的参数创建请求。

我有以下 API(返回所有发票):

www.apibackend.com/invoice

此 API 还可以处理这样的参数(返回 ID 为 1 的发票):

www.apibackend.com/invoice/1

在我的 APIM 服务中,我有以下代码:

<policies>
<inbound>
    <base />
    <set-backend-service base-url="www.apibackend.com/" />
    <rewrite-uri template="/invoice" />
</inbound>
<backend>
    <base />
</backend>
<outbound>
    <base />
</outbound>
<on-error>
    <base />
</on-error>

使用 APIM URL(例如:www.apim.com/test/GetInvoices)我可以向我的后端发出以下请求:

www.apibackend.com/invoice

这将返回所有发票,但我如何只检索 ID 为 1 的发票?如果我提出请求“www.apim.com/test/GetInvoices/1”,我会收到错误消息。

希望有人能提供帮助!

【问题讨论】:

  • 我不确定实际的问题是什么。如何将查询字符串传递给后端 api?
  • 我想将带有Azure API Management的前端字符串的参数发送到我的后端API。
  • 好吧,取决于你是怎么得到它的?计算并发送过来

标签: azure api parameters azure-api-management


【解决方案1】:

在 APIM 中将您的操作模板更改为 GetInvoices/{id},然后在策略中您将能够执行以下操作:

<rewrite-uri template="/invoice/{id}" />

【讨论】:

    猜你喜欢
    • 2021-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-06
    • 2021-05-25
    • 1970-01-01
    相关资源
    最近更新 更多