Azure API管理:替换查询字符串参数名称

问题描述 投票:0回答:1

APIM新手。尝试使用后端api期望的其他名称更改公开的查询字符串参数名称(而不是值)

例如,APIM端点期望/ v1 / Customer?CustomerId = 123

我想我需要在入站部分使用rewrite-url策略?

要将其更改为:/ v1 / Customer?ExternalCustomerId = 123


试过这个,不行

<set-query-parameter name="ExternalCustomerId" exists-action="append">
        <value>@(Context.Request.QueryString["CustomerId"])</value>
    </set-query-parameter>

错误:当前上下文中不存在名称“Context”

url-rewriting azure-api-management
1个回答
1
投票

尝试小写“上下文”。另外,QueryString是一个IReadOnlyDictionary,如下所述:https://docs.microsoft.com/en-us/azure/api-management/api-management-policy-expressions#ContextVariables,但有一个方便的重载:

<set-query-parameter name="ExternalCustomerId" exists-action="append">
    <value>@(context.Request.QueryString.GetValueOrDefault("CustomerId"))</value>
</set-query-parameter>
© www.soinside.com 2019 - 2024. All rights reserved.