我应该使用自己的Web API吗?

时间:2012-03-19 18:54:51

标签: asp.net-mvc asp.net-web-api

我正在检查Web API,我不确定asp.net mvc和web api如何能够或应该一起工作。

我想在客户端实现Backbone,但我不确定我是否应该在服务器端实现ApiController或普通的Controller?

我正在做的事情(获取当前用户/帐户信息)是基础ApiController将具有一些与基本控制器相同的功能,这将导致一些重复的功能,但不确定是什么将是其他权衡。

或者您是否只为要提供的公共服务创建ApiController并坚持使用Web应用程序的控制器?

2 个答案:

答案 0 :(得分:1)

如果您正在计划API,请使用ApiController。如果您正在使用Web UI,请使用经典的Controller。这就是两者的目的。

答案 1 :(得分:0)

这几乎就是我所处的情况,除了我使用的是Knockout.js而不是Backbone。我有创建和编辑的视图,并且在每个视图中都有一个非常复杂的Knockout.js UI,它可以在服务器上来回传递大量的JSON Ajax。

在MVC3下,我在同一个控制器中使用了许多JsonResult方法来渲染视图。我一直在尝试使用MVC4的RC,并且正在思考是否要使用API​​控制器来处理Ajax请求的“路径”(ho ho)。我喜欢强类型的HTTP类以及JSON.NET更集成的事实,但在这个阶段,我不得不说,为我自己的内部使用单独的API控制器的最终结果是感觉不对。和你一样,我发现我最终在安全性方面有很多重复,而且仅通过内容类型将相关逻辑分离,使事情变得更加混乱而不是更清晰。

所以在这一点上(虽然我已经知道变化无常)我计划继续使用标准的MVC控制器用于我当前的上下文,但如果我最终曝光,我将抓住机会使用闪亮的新Web API公共API。