目标:/ v1 / whatever / path / here。 我是ASP.Net Web API框架的新手,在开始时我认为任务很简单。 所以我最终得到了:
public override HttpControllerDescriptor SelectController(HttpRequestMessage request) {
var requestedVersion = ExtractOnlyVersionDigits(request);
var currentVersionControllers =
SelectControllersOfRequestedVersion(requestedVersion);
if (currentVersionControllers.Count() > 0) {
var appropriateController = currentVersionControllers.First(); // yeah, that is stupid, I know that
return new HttpControllerDescriptor(
_configuration,
appropriateController.Name,
appropriateController);
}
经过4个小时的编码后,我意识到无法使用乘法控制器,我会手动映射它们。
所以我的问题是:1)我是否滥用这个框架? 2)有没有一种简单的方法来重用现有的功能? 3)如果没有,我怎样才能推动我的版本映射而不在每个控制器/动作上声明[RoutePrefix]或whatisit?
答案 0 :(得分:0)
Scott Hanselman撰写了一篇关于ASP.NET的API版本的好文章
http://www.hanselman.com/blog/ASPNETCoreRESTfulWebAPIVersioningMadeEasy.aspx
可能值得一看,而不是试图自己成长? : - )