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



我正在查看Web API,我不确定asp.net mvc和Web API如何能够或应该协同工作。

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

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

或者你只会为你想要提供的公共服务创建一个ApiController,并坚持为网络应用程序创建控制器?

如果您正在计划API,请使用ApiController。如果您正在做Web UI的工作,请使用经典的控制器。这就是两者的初衷。

这几乎正是我所处的情况,只是我使用的是Knockout.js而不是Backbone。我有创建和编辑的视图,在每个视图中,都有一个非常复杂的Knockout.js UI,它可以在服务器上来回加载JSON的Ajaxing。

在MVC3下,我在渲染视图的同一控制器中使用了许多JsonResult方法。我一直在尝试MVC4的RC,并在考虑是否使用API控制器来处理Ajax请求。我喜欢强类型的HTTP类和JSON.NET更集成的事实,但在现阶段,我不得不说,拥有一个单独的API控制器供我自己内部使用的最终结果感觉不太好。和你一样,我发现我最终在安全性方面遇到了很多重复,而简单地按内容类型划分相关逻辑会让事情变得更加混乱,而不是更干净。

因此,在这一点上(尽管我一直被认为是多变的),我计划在我当前的上下文中继续使用标准MVC控制器,但如果我最终公开了一个公共的API,我会抓住机会使用全新的Web API。

最新更新