如何删除azure APIM策略中的部分uri路径?
原始请求遵循某种模式:https://apim.com/preprod/api/v1/***
所需的 URL,其中不含 /preprod 路由,
例如:https://test.abc.com/api/v1/products,
https://test.abc.com/api/v1/order?xyz=1
<policies>
<inbound>
<base />
<choose>
<when condition="@(context.Request.OriginalUrl.Path.Contains("/preprod"))">
<set-backend-service backend-id="pub-lb-api-v1" />
<set-header name="Host" exists-action="override">
<value>test.abc.com</value>
</set-header>
</when>
....
</policies>
您可以使用下面给出的策略来删除部分 Uri 参数。
<policies>
<inbound>
<base />
<choose>
<when condition="@(context.Request.OriginalUrl.Path.Contains("/preprod"))">
<rewrite-uri template="@((context.Request.OriginalUrl.Path).Replace("/preprod", ""))" />
<set-backend-service base-url="https://test.abc.com" />
<set-header name="Host" exists-action="override">
<value>test.abc.com</value>
</set-header>
</when>
</choose>
</inbound>
</policies>
这将从 Uri 路径中删除 preprod 并为您提供预期的响应。