在 APIM 中,对于 Restful API, 我想通过检查订阅密钥来添加查询参数。 即消费者 A 具有订阅密钥“43434-4545435-dfdfgfdg” 在 APIM 策略中,我想检查订阅密钥并添加查询参数,例如
?user=consumerA
实现这一目标的便捷方法是什么?
有几种方法可以实现您想要的,我的建议是将整个上下文传递到您的 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