C# · 12月 27, 2021

c# – Web api的性能?

我刚在想,

WebApi以及路由机制的工作方式是读取http动词(GET POST etc …),然后搜索匹配的方法名称/参数:

例如 :

>如果是GET,URI是api / Customers / 5:

>方法应该从Get开始
>如果它有ID,那么搜索一个接受int作为参数的方法.
等等(有更多的规则).

我主要认为他们用反思来做.

题 :

对于每个URI请求,搜索所有这些数据只是为了附加一个方法吗?

哪里可以轻松地从客户端发送一个非常短的字符串,这将意味着服务器端的方法?

为什么不这样做呢?好的,因为我们想用http动词来表示意思.好.但是这么多操作只是为了执行一个方法

示例#1

得到api /客户/ 5

可能

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

示例#2

放api / Customers / 5?v = 123

可能

a.ashx?m = uc& id = 5?v = 123′(方法= UpdateCustomer& id = 5& value = 123)

我的时间更短.

不要误会我我相信这个api是由非常聪明的人来完成的,他们知道他们谈论什么.

只是想知道我失踪了什么

解决方法 如果您不对代码进行编码,Web api有很多选项,您无需使用HTTP Handler
完整列表: http://www.asp.net/whitepapers/mvc4-release-notes#_Toc317096197

> OData支持(通过Queryable属性)
>内容谈判
>过滤器
>模型绑定和验证
> IIS以外的自我主机能力
链接生成到包含路由规则的相关资源
>完全支持路由/路由
>能够使用IApiExplorer创建自定义帮助和测试页面

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

一如往常,您需要选择最适合您的技术,如果您希望性能与Http Handler一起使用.如果您想要灵活性和休息,请使用Web API.如果您公开其他消费的Web服务,您可能需要休息