Asp.net mvc 向现有MVC5应用程序添加WebAPI

Asp.net mvc 向现有MVC5应用程序添加WebAPI,asp.net-mvc,asp.net-web-api,Asp.net Mvc,Asp.net Web Api,我有一个正常工作的MVC5应用程序。它具有模型、控制器、视图和所有其他功能。它已经是一个独立的应用程序。我现在想为这个应用程序创建一个API。我不知道是应该在同一个解决方案中创建一个新的WebAPI项目,还是使用我现有的MVC项目,以便在其中包含API功能。哪种方式比较合适?请注意,稍后我将使用该API创建一个使用Xamarin的移动应用程序。如果您希望WebAPI不仅仅用于网站,那么请确保,您已经在解决方案中添加了新的WebAPI项目 +在面向对象编程中,它更好,更容易更改。使用同一个项目没有

我有一个正常工作的MVC5应用程序。它具有模型、控制器、视图和所有其他功能。它已经是一个独立的应用程序。我现在想为这个应用程序创建一个API。我不知道是应该在同一个解决方案中创建一个新的WebAPI项目,还是使用我现有的MVC项目,以便在其中包含API功能。哪种方式比较合适?请注意,稍后我将使用该API创建一个使用Xamarin的移动应用程序。

如果您希望WebAPI不仅仅用于网站,那么请确保,您已经在解决方案中添加了新的WebAPI项目
+在面向对象编程中,它更好,更容易更改。

使用同一个项目没有什么错,在许多方面,这是最有意义的,因为如果他们住在同一个web项目中,托管应用程序会更容易

我倾向于将API控制器保存在名为API的子文件夹中,该子文件夹整齐地位于web解决方案的控制器文件夹中

控制器>Api

当我对这类事情不确定时,我倾向于使用最简单的选项,稍后如果您找到一个很好的理由在自己的项目中定位控制器,出于某种原因,这是很容易实现的


您提到稍后将使用API使用XAMARIN开发应用程序,这并不意味着移动API。。。移动应用程序根本不需要任何类型的API引用,它们只是使用标准HTTP请求调用您的应用程序。这不会有什么区别,同样,由于您的网站需要一台主机,您也可以将同一台主机用于您的API。

您是否计划将API托管在与MVC应用程序相同的位置?我不同意,这与OOP无关。其他项目不太可能使用API控制器,因为它们的主要目的是通过HTTP提供数据服务。OP将从他的web项目中保留API控制器中获得更多。我的意思是——从OOP方面来说——正确地编写WebAPI,就像新项目一样,因为——网站——它的网站,而WebAPI——它的WebAPI——它不需要在一个项目中。如果明天您需要更改WebAPi中的某些内容,您只需要更改/构建WebAPi,而不是您的所有网站+WebAPi+您编写了您希望使用WebAPi来实现Xamarin-因此,WebAPi将成为将数据传输到所有平台的终点,这是一个角色OOP Too完全不同意这一点,但每个人都有自己的角色。