在网址中简单而强大的WEB API版本?

时间:2017-05-04 08:53:07

标签: c# asp.net asp.net-web-api

目标:/ 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?

1 个答案:

答案 0 :(得分:0)

Scott Hanselman撰写了一篇关于ASP.NET的API版本的好文章

http://www.hanselman.com/blog/ASPNETCoreRESTfulWebAPIVersioningMadeEasy.aspx

可能值得一看,而不是试图自己成长? : - )