微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我可以在 Azure API 管理上调用不同的后端吗

如何解决我可以在 Azure API 管理上调用不同的后端吗

我正在尝试实现这一点,当我根据请求标头调用 APIM 端点时,它应该是不同的端点。例如,当用户调用 https://test.azure-api.net/testsvc-dev/api/test APIM 时,应该能够将请求发送到 https://testappv1:80/test 或 https://testappv2:80。现在我可以在 serviceURL 中看到,我只能添加一个。是否有任何策略可用于执行此类操作。

更多上下文:我试图在一次调用中访问两个不同版本的 API。我试图让 APIM 根据用户来决定,而不是调用者选择调用哪个。

解决方法

您可能正在寻找 set-backend-service 政策。 以下是 Microsoft 文档中根据查询参数更改后端服务的示例:

<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>

当然,您可以采用示例并查询所需的标题;-)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。