在具有Azure APIM面向公众的URL-https://api.example.com/api/v1/storenumber/ordernumber
上,我有一个要求和
后端服务URL(通知-此处没有URL路径后缀)-https://back-end.service.com
所以我需要在APIM中删除“ / api / v1 / storenumber / ordernumber”。
如何在Azure APIM策略中实现此目标?
谢谢, 阿内什。
答案 0 :(得分:1)
假设您具有主机名my-service.azure-api.net
的APIM服务。 URL的后缀为my-api
,后端URI为https://my-backend.com
的APIM服务中的API。以及此API中带有URI模板my/uri/template
的操作。
所以要打来电话
https://my-service.azure-api.net/my-api/my/uri/template
没有任何其他配置的APIM服务将呼叫
https://my-backend.com/my/uri/template
因为默认情况下,APIM服务将源URI scheme + hostname + api后缀替换为为该API定义的后端URI。
在最简单的情况下,如果您的API只有一个操作,则可以将API后缀设置为api/v1/storenumber/ordernumber
,将操作模板设置为/
。这将导致面向公众的URI
https://api.example.com/api/v1/storenumber/ordernumber
和此操作的后端URI
当然,当您在API中进行多个操作时,这种方法更难使用。在这种情况下,您需要使用以下策略:https://docs.microsoft.com/en-us/azure/api-management/api-management-transformation-policies#RewriteURL。为此,您可以将API后缀和操作URI模板设置为任何内容,但将此策略添加到操作的入站部分:
<rewrite-uri template="/" />
rewrite-uri策略的作用是为后端请求覆盖操作URI模板。