Azure API 管理 - 版本控制路径模式重复 url 中的版本
Azure API Management - Versioning path schema duplicates version in url
我正在尝试应用 api 管理 版本集 来查询具有两个版本的 .Netcore 3.1 web api。我在版本集上选择了路径架构,它将版本标识符附加到 url。在这种情况下 /v1:
问题是,在我的 api 中,我还使用路径模式对网络上的端点进行版本控制 api,因此当 apim 构建 url ,它将 apim 版本标识符附加到 api 版本路径,这会导致重复,例如:
https://myapi.com/apiname/v1/v1/endpoint ,其中 v1/endopoint 是控制器的路径。
为了解决这个问题,我将网络上的版本模式 api 切换为 header 并在 apim 上创建了一个策略,将版本 header 添加到请求,因此路径中的唯一版本现在是 apim.
中的版本
我想知道这是否是正确的方法,或者是否有更好的解决方案。也许可以告诉 apim 忽略路径中的版本 /v1?
感谢您的帮助!
APIms域模型允许在级别控制版本控制方案(路径前缀,header name/value,查询参数name/value) API 版本集,因此您无需在 API 的每个操作中重复 /v1.0
。从本质上讲,如果您的 API 版本集配置为具有 /v1.0
的路径前缀,它将附加到此版本集中包含的所有 API 路径。这就是产生加倍的原因。
我正在尝试应用 api 管理 版本集 来查询具有两个版本的 .Netcore 3.1 web api。我在版本集上选择了路径架构,它将版本标识符附加到 url。在这种情况下 /v1:
问题是,在我的 api 中,我还使用路径模式对网络上的端点进行版本控制 api,因此当 apim 构建 url ,它将 apim 版本标识符附加到 api 版本路径,这会导致重复,例如:
https://myapi.com/apiname/v1/v1/endpoint ,其中 v1/endopoint 是控制器的路径。
为了解决这个问题,我将网络上的版本模式 api 切换为 header 并在 apim 上创建了一个策略,将版本 header 添加到请求,因此路径中的唯一版本现在是 apim.
中的版本我想知道这是否是正确的方法,或者是否有更好的解决方案。也许可以告诉 apim 忽略路径中的版本 /v1?
感谢您的帮助!
APIms域模型允许在级别控制版本控制方案(路径前缀,header name/value,查询参数name/value) API 版本集,因此您无需在 API 的每个操作中重复 /v1.0
。从本质上讲,如果您的 API 版本集配置为具有 /v1.0
的路径前缀,它将附加到此版本集中包含的所有 API 路径。这就是产生加倍的原因。