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

Can I call different backend on Azure API Management

我正在尝试实现这一点,当我根据请求调用 APIM 端点时 headers 它应该是不同的端点。例如,当用户调用 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>

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