如何将 WebAPI 集成到 MVC 应用程序

How to integrate WebAPI to an MVC application

我正在开发一个 MVC5 应用程序并首先使用 Entity Framewerok 6 代码。现在我们还将开发一个 android 应用程序,它将使用 web 服务 与 MVC 应用程序(CRUD 操作)进行交互。现阶段我想澄清以下问题:

1) 我认为 WebAPI 对我们来说是更好的选择,因为我们在 android 应用程序上使用这些服务。你有什么建议?

2) 为了将 WebAPI 集成到 MVC 项目中,应该进行哪些更改?另一方面,我们是否可以通过进行一些修改即继承来使用相同的控制器和数据层方法(即 SaveChanges 等)?或者我们是否必须为 Web 服务创建单独的方法?能给个例子代码吗?

3) 将WebAPI 集成到MVC 项目中是否会影响MVC 项目的能力或方法?我的意思是将 WebAPI 集成到 MVC 项目中有什么缺点吗?

如有任何帮助,我们将不胜感激。

1) 这是个好主意。 Web API 易于实施和使用

2) 您无需在应用程序中对集成 Web API 进行更改:只需开始使用它即可。当您想从 EF 公开 CRUD 操作时,一个好主意是 to implement ODATA services. Or use something like Breeze(取决于您希望如何使用服务)。请参阅下面 "MVC and Web API" bwelow

3) Web API 完全不影响 MVC 部分,除非您在设置路由时出错。虽然它们 运行 在同一台主机上,但它们完全独立于彼此工作。

MVC 和 Web API

除非您需要做一些特殊的事情,比如在不同的 URL 或 "domain name" 中公开 Web API,否则 MVC 和 Web API 是在同一个 Web 中实现的应用项目。要在您的 MVC 项目中开始使用 Web API,只需添加一个新控制器即可。也许您还必须包括 WEB API 路由配置和一些其他 Web API 配置。

如果您想通过 Web API 公开 EF 模型,您只需按照 link 中的说明创建一个 ODATA 控制器,它将 EF 模型公开为 RESTful服务,允许您通过URLs.

对EF模型执行CRUD操作

注意:您想要做的是 MVC 应用程序中非常常见的模式:MVC 用于生成视图,Web API fos 公开可以轻松使用的功能使用 Javascript + AJAX 的视图。不要害怕使用它。你会发现一点问题都没有