通过检查 APIM 策略中的订阅密钥来添加查询参数

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

在 APIM 中,对于 Restful API, 我想通过检查订阅密钥来添加查询参数。 即消费者 A 具有订阅密钥“43434-4545435-dfdfgfdg” 在 APIM 策略中,我想检查订阅密钥并添加查询参数,例如

?user=consumerA

实现这一目标的便捷方法是什么?

azure-api-management azure-policy
1个回答
0
投票

有几种方法可以实现您想要的,我的建议是将整个上下文传递到您的 API,这样您就可以访问您需要的所有内容,并且只需要发送一次。

您需要将其添加到

inbound
政策中。

您可以将整个上下文作为标头参数传递...

<set-header name="x-apim-context-subscription" exists-action="override">
    <value>@(JsonConvert.SerializeObject(context.User))</value>
</set-header>

...但是,为了实现您正在寻找的特定结果,您始终可以这样做...

<set-query-parameter name="user" exists-action="override">
    <value>@(context.User.Id)</value>
</set-query-parameter>

您需要查阅文档以确保您获得所需的内容,您可能需要引用上下文中的

Subscription
对象而不是
User

https://learn.microsoft.com/en-us/azure/api-management/api-management-policy-expressions

© www.soinside.com 2019 - 2024. All rights reserved.