Odata中具有版本控制的多个控制器/动作

时间:2019-09-27 21:18:55

标签: odata

我们的产品创建了一个CustomODataVersionControllerSelector,以在不同控制器版本的url中使用前缀(例如v2 /)。由于url中的version只是一个前缀,因此OData仅使用odataroute搜索控制器和动作,并从attributeMapping返回第一个匹配的控制器/动作,因此同一odataroute可以映射到多个控制器和动作。有时,即使我们试图获取v1控制器,我们的客户也被定向到v2端点。 我们应该怎么做才能迫使OData找到正确的控制器和动作?

我们定制了GetControllerName函数,使其始终返回控制器名称的基本版本,然后通过读取url附加版本以构造实际的控制器名称。此解决方法有助于找到正确的控制器版本,但是操作映射仍然是一个问题。

# tack on whatever query params came with the email link
redirect_url = f'{redirect_url}?{self.request.GET.urlencode()}'

0 个答案:

没有答案