Web api性能?

我刚在想 ,

WebApirouting mechanism工作方式是它读取http verb (GET POST等…),然后搜索匹配的方法名称/参数:

例如 :

  • 如果它是GET并且URI是api/Customers/5

    • 方法应该从Get开始

    • 如果它有ID那么搜索一个接受int作为参数的方法。

    • 等(有更多规则)。

我大多相信他们是用reflection做的。

题 :

对于每个URI请求来说,搜索所有这些数据只是为了附加方法,这不是一个性能损失吗?

我可以轻松地从客户端发送一个非常短的字符串,这将暗示服务器端的方法?

为什么不以简单的方式做到这一点? 好的,因为我们想要使用http动词作为意义。 好。 但是执行方法只需要很多操作

例子#1

get api/Customers/5

可能

a.ashx?m=gc&id=5 (method=GetCustomer & id=5)

例子#2

put api/Customers/5?v=123

可能

a.ashx?m=uc&id=5?v=123' (method=UpdateCustomer & id=5 & value=123)

我的更短。

别误会我的意思。 我相信这个api是由非常聪明的人完成的,他们知道他们在谈论什么。

只想知道我错过了什么。

如果你不编码它,Web api有很多你没有HTTP Handler的选项全部列表: http : //www.asp.net/whitepapers/mvc4-release-notes#_Toc317096197

  • OData支持(通过Queryable属性)
  • 内容谈判
  • filter
  • 模型绑定和validation
  • 能够在IIS之外自托管
  • 链接生成到包含路由规则的相关资源
  • 完全支持路由/路由
  • 能够使用IApiExplorer创建自定义帮助和测试页面

性能比较HttpHandler与WebAPI: http : //www.west-wind.com/weblog/posts/2012/Sep/04/ASPNET-Frameworks-and-Raw-Throughput-Performance

与往常一样,如果你想要Http Handler的性能,你需要选择最适合你的技术。 如果您想要灵活性和rest,请使用Web API。 如果您公开其他人将使用的Web服务,您可能需要rest