Ane*_*nan 7 azure-api-management
我有一个要求,我有 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 策略中实现这一点?
谢谢,阿尼什。
假设您有一个带有 hostname 的 APIM 服务my-service.azure-api.net。APIM 服务中的一个 API,带有 URL 后缀my-api,后端 URI 为https://my-backend.com. 并在此 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 方案+主机名+api 后缀替换为为相关 API 定义的后端 URI。
在最简单的情况下,当您的 API 只有一项操作时,您可以将 API 后缀设置为api/v1/storenumber/ordernumber并将操作模板设置为/. 这将导致https://api.example.com/api/v1/storenumber/ordernumber 的面向公众的 URI
和此操作的后端 URI
当然,当您在 API 中有多个操作时,这种方法更难使用。在这种情况下,您需要使用策略:https : //docs.microsoft.com/en-us/azure/api-management/api-management-transformation-policies#RewriteURL。为此,您可以将 API 后缀和操作 URI 模板设置为任何内容,但将此策略添加到操作的入站部分:
<rewrite-uri template="/" />
Run Code Online (Sandbox Code Playgroud)
rewrite-uri 策略所做的是覆盖后端请求的操作 URI 模板。
| 归档时间: |
|
| 查看次数: |
4854 次 |
| 最近记录: |