【发布时间】:2013-02-04 11:21:24
【问题描述】:
我在想,
WebApi 和routing mechanism 的工作方式是读取http verb(GET POST 等...),然后搜索匹配的方法名称/参数:
例如:
-
如果是
GET并且URI 是api/Customers/5:方法应该以
Get开头如果它有
ID,那么搜索一个接受 int 作为参数的方法。等。 (还有更多规则)。
我主要相信他们是使用反射来做到的。
问题:
对于每个 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 是由非常聪明的人完成的,他们知道他们在说什么。
只想知道我错过了什么。
【问题讨论】:
-
如果您正在寻找速度,我强烈建议您看看ServiceStack...我曾经使用过,但再也没有使用过 WebApi :)
-
@balexandre 只是想知道每个人都在谈论这个 API...我昨天尝试过它很酷。但是,嘿,为什么不以简单的方式来做呢?好的,因为我们想使用 http 动词作为含义。好的。但是这么多操作只是为了执行一个方法?
-
我什至更喜欢 WCF Web 服务而不是这个新的 Web API
-
ASP.NET Web API 并不是要取代标准的 Web 服务。它旨在支持REST 和其他一些现代网络标准,如内容协商等。如果您不想遵循 REST 原则(假设动词具有意义并正确使用),那么您很可能不需要Web API - 这只是使用适当工具完成适当工作的一个例子。
-
@tpeczek 我有没有提到网络服务? (它使用肥皂协议并且非常重......)?我可以在没有 web 服务的情况下发送命令 .... 你知道的.,.. 给一个处理程序,上面写的正是我写的。
标签: c# asp.net asp.net-mvc .net-4.0 asp.net-web-api