2012-03-19 71 views
1

我正在检查Web API,并且我不确定asp.net mvc和web api如何可以或应该一起工作。我应该使用我自己的Web API

我想在客户端实现Backbone,但我不确定是否应该在服务器端实现ApiController或常规Controller?我正在做的事情(获取当前用户/帐户信息)的方式是,一个基本的ApiController将具有一些基本控制器相同的功能,这会导致一些重复功能,但不确定其他的折衷是什么?

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

+0

你到底用了什么? – 2012-06-29 20:51:50

回答

1

如果您正在计划API,请使用ApiController。如果你在做Web UI的东西,使用经典的控制器。这是两个都是为了。

0

这几乎就是我所处的情况,除了我使用的是Knockout.js而不是Backbone。我对Create和Edit有了一些看法,并且在每个视图中都有一个非常复杂的Knockout.js UI,可以将JSON的Ajaxing加载到服务器中。

在MVC3下,我在同一个呈现视图的控制器中使用了大量的JsonResult方法。我一直在试用MVC4的RC,并且正在考虑是否要沿着使用API​​控制器来处理Ajax请求的“路线”(ho ho)。我喜欢强类型的HTTP类和JSON.NET更加集成的事实,但是在这个阶段,我不得不说,为我自己的内部使用单独的API控制器的最终结果只是感觉不对。和你一样,我发现我最终在安全方面做了大量的重复工作,并且仅仅通过内容类型将相关逻辑分开,这使事情变得更加混乱而不是更清晰。我打算继续使用标准的MVC控制器来处理当前的上下文,但是如果最终我会跳过使用闪亮的新Web API的机会公开API。

+0

我现在也一直使用标准的MVC控制器。 – adriaanp 2012-06-30 06:46:00

+0

你是如何在安全性方面重复的?内容类型的问题是什么?你不只是支持JSON? – georgiosd 2012-07-14 07:18:17

+0

我已经采取了在我的AbstractController Initalize中进行请求身份验证而不是MvcApplication中的一个处理程序,并且ApiController是Controller的一个不同堆栈的一部分,我最好的选择是将HttpContext传递给一个共享辅助方法,不喜欢。 – 2012-07-15 00:42:34

相关问题