还有另一个用于进行名为NancyFx的HTTP调用的框架。我的问题是使用它有什么好处。我快速查看了文档:
https://github.com/NancyFx/Nancy/wiki/Documentation
并且看起来没有突出的功能,因此我想使用它。通过WebHttp使用它有什么好处?
P.S:我一直在阅读一些奇怪的短语,一遍又一遍地重复着“超级快乐的道路”。除了这种“超级快乐的道路”之外还有什么东西吗?是否实现了任何真正的功能?
答案 0 :(得分:45)
它似乎提供了一种不同的方法来定义“路由”(在MVC意义上),使用lambdas来识别相对路径,参数和响应的实现。
最终,框架的主要好处是它的表现力。在ASP.NET MVC中,RouteTable位于global.asax中,实现位于Control中。看起来在NancyFx中,这种模式占主导地位:
Action["/path"] = args => { return your_implementation_here; }
示例实施:
Get["/products"] = id => { return GetRepository().Products.Single( q => q.Id == id); };
说明:HTTP获取参数为“Id”的相对端点“/ products”将从存储库返回单个产品,其中Id参数与产品的Id匹配。
表达和简洁。
答案 1 :(得分:18)
免责声明:我不是NancyFx的支持者:) 我正在评估是否应该将NancyFx或ASP.NET Web API用于项目的REST部分。
除了GlennFerrieLive已经提到的简单和表达(我认为它们本身就有价值)之外,我想我已经掌握了另外几个好处:
以面向方面方式执行任何API请求处理后,之前和之后执行操作很容易,所以说。
默认情况下,框架会处理接受的返回类型,因此它会适当地转换JSON,XML,...中的输出。
实现请求的Lambda不返回实际的已填充的数据,但仍以查询的形式返回。之后,在实际执行查询,点击数据库和返回实际数据之前,仍然可以轻松添加过滤,排序和其他操作。
他们以某种方式包装了HttpRequest,并向开发人员提供了相应的功能,不同之处在于注入了这个新对象,你当然可以用模拟代替它...这样更简单,更清晰的测试
也许其中一些(全部?)已经可以在ASP.NET Web API中使用并且同样轻松,我不确定。
HTH