将Web API控制器添加到MVC项目与添加全新的Web API项目

时间:2016-05-03 16:28:04

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

我有一个使用MVC控制器返回视图的MVC应用程序。现在,我想向其他应用程序公开API,以及为同一MVC中的某些SPA功能返回JSON数据类型。将Web API控制器添加到我的MVC项目与添加一个全新的Web API项目之间有什么区别?

2 个答案:

答案 0 :(得分:1)

  

返回同一MVC中某些SPA功能的JSON数据类型

对于这种情况,我将Web API放在现有的MVC中。通过这样做,您可以共享业务逻辑,服务甚至模型。

在我的情况下,我使用AngularJS SPA silos ,并且MVC和Web API都在同一个Web应用程序中愉快地生活,并共享业务逻辑和数据访问层。

值得注意的是,如果将MVC和Web API保持在一起,则可以共享身份验证cookie 。否则,在两个地方同时进行身份验证是困难的,因为Web API是基于令牌的,默认情况下MVC是基于cookie的。

仅供参考: 在新的ASP.Net MVC 5中,将不再有单独的MVC和Web API。

答案 1 :(得分:0)

两者之间的唯一区别是可重用性良好的设计实践。我强烈建议在单独的项目中使用它。然后,稍后,您将能够在不需要太多努力的情况下重复使用它。

隔离的另一个好处是对所做的任何更改对所需测试的影响。如果你保持项目不同,那么如果你以后改变了什么,那么重新测试工作的领域也只是第二个项目。