具有端点路由和版本控制的ASP.NET Core 3.1 OData

时间:2020-06-24 16:04:53

标签: asp.net-core odata

我正在使用端点路由(已经支持)和版本控制来创建ASP.NET Core 3.1 OData项目。 在注册OData路由时,我没有一个模型,而是两个模型,它们是从VersionedODataModelBuilder中获得的,每个API版本一个(现在有两个)。 我正在这样注册端点:

endpoints.MapODataRoute("odata", "odata/v{version:apiversion}", models.First());

问题是,我需要针对每个模型执行此操作,否则,端点将仅了解其中一个。这是可行的,但是,正如我说的那样,端点将始终获得相同的模型,这可能不合适(例如,每个版本的属性不同或功能不同)。

一种可能的选择是为每个版本都有一个端点:

endpoints.MapODataRoute("odata", "odata/v1.0", models.ElementAt(0));
endpoints.MapODataRoute("odata", "odata/v2.0", models.ElementAt(1));

在这种情况下,端点不了解版本,也就是说,它不遵守操作方法上的[ApiVersion]属性。

在较早的版本中,有一个MapVersionedODataRoute收集了一系列模型,但是现在不见了。

0 个答案:

没有答案