azure - 我可以在 Azure API 管理上调用不同的后端吗
问题描述
我试图实现这一点,当我根据请求标头调用 APIM 端点时,它应该是不同的端点。例如,当用户调用https://test.azure-api.net/testsvc-dev/api/test APIM 应该能够将请求发送到 https://testappv1:80/test 或 https://testappv2:80 . 现在我可以在 serviceURL 中看到,我只能添加一个。是否有任何政策可用于执行此类操作。
更多上下文:我试图在一次调用中访问两个不同版本的 API。我试图让 APIM 根据用户来决定,而不是调用者选择调用哪一个。
解决方案
您可能正在寻找该政策。这是 Microsoft 文档中的一个示例,它根据查询参数更改后端服务:set-backend-service
<policies>
<inbound>
<choose>
<when condition="@(context.Request.Url.Query.GetValueOrDefault("version") == "2013-05")">
<set-backend-service base-url="http://contoso.com/api/8.2/" />
</when>
<when condition="@(context.Request.Url.Query.GetValueOrDefault("version") == "2014-03")">
<set-backend-service base-url="http://contoso.com/api/9.1/" />
</when>
</choose>
<base />
</inbound>
<outbound>
<base />
</outbound>
</policies>
当然,您可以采用示例并查询所需的标题;-)
推荐阅读
- node.js - 在节点应用程序中使用 moment.Js 进行日期格式化
- selenium - 开发人员工具无法使用 Xpath 找到元素,但 Xpath 帮助程序扩展可以
- xpath - Xpath:返回符合任一条件的所有节点
- javascript - 如何从 JSON 对象中删除键下的所有内容
- javascript - 有没有办法让 div 扩展以覆盖所有可用空间,隐藏它扩展的所有内容?
- tensorflow - 移动设备上的视频分割
- javascript - AssertionError [ERR_ASSERTION]: 任务函数必须指定 GULP (node js, keystone js)
- vue.js - Communication between chain vuejs components
- android - 如何修复错误“NoSuchMethodError:getter 'focusScopeNode' was called on null”?
- php - 当我启动 apache MySQL 服务器时,我收到错误“(HY000/2002):无法建立连接,因为目标机器主动拒绝它。”