【问题标题】:attributerouting limitations in webapiwebapi 中的属性路由限制
【发布时间】:2013-06-07 05:59:34
【问题描述】:

在属性路由的文档中,有一系列警告说“performance enhancements when matching routes”不起作用。他们在谈论什么样的性能增强,这对于基于生产的系统中的性能意味着什么 - 它是否足够重要以至于不考虑在生产系统上进行属性路由?

关于自定义路由处理程序和查询字符串参数约束的更多细节怎么样? “自定义”是什么意思,对于查询字符串约束,是对数据类型的约束吗?

我想进一步了解这一点,并衡量它在我的用例中的影响,以判断 web-api 的属性路由包是否适合我的生产 api。

【问题讨论】:

    标签: asp.net-web-api attributerouting


    【解决方案1】:

    摘要

    根据the ASP.NET v5 RTM Beta(来自sourcenightly build)进行评估,因为它包括AttributeRouting

    详情

    合并

    在 AR 的包所有者 Tim McCall 的合作下,AttributeRouting 已被吸收到 ASP.NET v5 RTM 中。自 2013 年 2 月以来,v5 一直处于测试阶段。请参阅 the ASP.NET Documentation site 上的 ASP.NET Roadmap

    自定义路由处理程序

    参数约束

    基于 HttpVerbAttribute 的类支持(来自AttributeRoutingTest.cs 的示例):

    参数类型约束

        [HttpGet("controller/{id:int}")]
        public string Get(int id) { ... }
    

    可选参数

        [HttpGet("optional/{opt1?}/{opt2?}")]
        public string Optional(string opt1 = null, string opt2 = null) { ... }
    

    属性内默认值

        [HttpGet("default/{default1=D1}/{default2=D2}")]
        public string Default(string default1, string default2) { ... }
    

    通配符参数

        [HttpGet("wildcard/{*wildcard}")]
        public string Wildcard(string wildcard) { ... }
    

    【讨论】:

    • 我查看了该文档并在问题中提到它,特别是概述的句子......
    • 我已经添加到我的答案中,但请注意,我曾经和现在没有将您推荐给 AttributeRouting 站点。我建议您访问 ASP.NET 路线图站点,其中解释了 AttributeRouting 现在是 ASP.NET 的一部分。 AttributeRouting 所有者 Tim McCall 试图让 ASP.NET 团队将 Web API 部分中的某些项目从内部更改为公共。他与 ASP.NET 合作将 AR 合并到其中将使他能够更改以解决概述的项目。一旦我在代码中发现他想要的性能提升已经实现的细节,我将添加评论或扩展我的答案。
    • 我想我有点困惑,路线图页面只有一段关于它的简介和指向属性路由项目的链接。无论如何,这是否意味着属性路由中的所有路由都存在性能问题?它是否比 asp.net mvc 慢得多,如果是的话,是否有任何基准?列出的“匹配路由时的性能增强”听起来很模糊。我试图衡量一个“问题”有多少,或者它是否只是一个增量增强。
    • 我的理解是 Web API 无法增强,而 MVC 已经有了。当我找到代码时,我会在这里更新......
    • @Troy,我还没有回去挖掘这个答案。 “Web API”是指“Web API 的属性路由”。增强功能将在 ASP.NET Web API 2.0 或 ASP.NET Web API vNext 中完成。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-17
    • 1970-01-01
    • 2014-09-26
    • 2014-06-14
    • 1970-01-01
    • 2013-08-04
    • 2013-11-26
    相关资源
    最近更新 更多