我正在开发 MVC5 应用程序并首先使用 Entity Framewerok 6代码。现在我们还将开发一个Android应用程序,它将使用 Web服务与MVC应用程序(CRUD操作)进行交互。在这个阶段,我想澄清下面的问题:
1)我认为WebAPI对我们来说是更好的选择,因为我们使用Android应用程序上的服务。你有什么建议?
2)为了将WebAPI集成到MVC项目中,应该进行哪些更改?另一方面,我们可以通过进行一些修改即继承来使用相同的控制器和数据层方法(即SaveChanges等)吗?或者我们是否必须为Web服务创建单独的方法?你能用代码给出一个例子吗?
3)将WebAPI集成到MVC项目是否会影响MVC项目的能力或方法?我的意思是将WebAPI集成到MVC项目有什么不利之处吗?
任何帮助都将不胜感激。
答案 0 :(得分:2)
1)这是一个好主意。 Web API易于实现和使用
2)您不需要在应用程序中对intergate Web API进行更改:只需开始使用它。由于您希望从EF公开CRUD操作,因此一个好主意是to implement ODATA services。或者使用something like Breeze(取决于您希望如何使用服务)。参见" MVC和Web API" bwelow
3)Web API不会影响所有MVC部分,除非您设置路由时出错。虽然它们在同一主机中运行,但它们完全相互独立。
除非你需要做一些特别的事情,比如在不同的URL或域名"中公开Web API,MVC和Web API都在同一个Web应用程序项目中实现。要在MVC项目中开始使用Web API,只需添加一个新控制器即可。也许您还必须包括WEB API路由配置和其他一些Web API配置。
如果要通过Web API公开EF模型,只需按照链接中的说明创建ODATA控制器,它将EF模型公开为RESTful服务,允许您执行CRUD操作到EF模型通过URL。
注意:你想要做的是MVC应用程序中非常频繁的模式:MVC用于生成视图,Web API用于公开可以从Javascript + AJAX中的视图中轻松使用的功能。不要害怕使用它。您根本找不到任何问题