何时使用Web API以及何时使用Normal控制器类

时间:2013-06-02 00:22:47

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

我想开始为我们公司实施一个新项目,该项目是关于管理我们公司的资产,如服务器,个人电脑,车辆,家具等。该系统的主要功能包括: -

  1. 添加不同类型的资产。
  2. 修改资产。
  3. 删除资产。
  4. 将资产相互链接
  5. 提供有关资产的报告和统计结果。
  6. 所以在我的项目中,我不需要像其他系统那样拥有Web服务 - 在这个阶段 - 需要与系统集成。并且主要是控制器类将返回html页面,但仅针对某些场景如jQuery auto complete,控制器类将返回JSON对象以显示在auto complete上。 所以我需要在我的情况下使用Web API吗?或者我可以实现系统而无需查看Web API,因为我之前没有在WebAPI上工作?

    第二个问题,如果我认为我目前需要在当前阶段使用Web API;那时我应该考虑在我的项目中使用Web API吗?

    BR

2 个答案:

答案 0 :(得分:4)

由于您的项目需要呈现html页面,因此首选使用MVC控制器,因为它们已针对向Web浏览器提供内容进行了优化。

但是,您可以在同一个项目中混合使用MVC控制器和Api控制器。您可以将它们放在单独的命名空间中,例如MyApp.Mvc.AssetsControllerMyApp.WebAPI.AssetsController

这将允许您在MVC和WebAPI中公开类似的URI路由,例如:

/assets/1      << MVC view - data rendered in html
/api/assets/1  << Web API  - Json, images, etc..

通常,如果您希望某人能够使用XML,JSON等API,那么请使用web api。如果您的操作是以视图为中心的(例如,用户对数据采取行动的html页面),那么您将需要一个MVC控制器。

答案 1 :(得分:1)

请参阅this:使用Controller渲染普通视图。 ApiController操作仅返回序列化并发送到client.and this的数据。