Asp.net mvc 使用api区域。ASP.NETMVC

Asp.net mvc 使用api区域。ASP.NETMVC,asp.net-mvc,Asp.net Mvc,在我当前的项目中,我使用backbone.js作为前端技术。答:我应该注意,我仍然在MVC3上,但准备继续前进;)创建api区域作为我的客户端部分的数据端点是否合理。当然,我可以避免它,在我的项目的非区域、外部部分只留下一个普通的控制器。最佳实践是什么?最好为主干模型与之交互的客户端API设置一个单独的区域。关注点分离、可读性等 不过,我建议您使用API而不是标准MVC控制器。它很容易通过nuget添加,只需很少的配置即可设置,并且它与主干网基于HTTP谓词的方法很好地配合,可以对CRUD操作进

在我当前的项目中,我使用
backbone.js
作为前端技术。答:我应该注意,我仍然在
MVC3
上,但准备继续前进;)创建
api
区域作为我的客户端部分的数据端点是否合理。当然,我可以避免它,在我的项目的非区域、外部部分只留下一个普通的控制器。最佳实践是什么?

最好为主干模型与之交互的客户端API设置一个单独的区域。关注点分离、可读性等

不过,我建议您使用API而不是标准MVC控制器。它很容易通过nuget添加,只需很少的配置即可设置,并且它与主干网基于HTTP谓词的方法很好地配合,可以对CRUD操作进行建模


如果您已经计划使用WebAPI,那么请忽略我!如果出于任何原因不能,那么我仍然会说,一个单独的区域是一个好方法。

最好为您的主干模型与之交互的客户端API设置一个单独的区域。关注点分离、可读性等

不过,我建议您使用API而不是标准MVC控制器。它很容易通过nuget添加,只需很少的配置即可设置,并且它与主干网基于HTTP谓词的方法很好地配合,可以对CRUD操作进行建模


如果您已经计划使用WebAPI,那么请忽略我!如果出于任何原因不能,那么我仍然认为单独的区域是一个好方法。

将APIController粘贴到API区域中会带来什么好处?这样,它们仍然包含在您的网站中,我认为API不属于您的网站。我会为API控制器创建一个单独的项目,并从您的网站项目链接到该项目。为此,您最终可以在站点中创建一个空的控制器,该控制器继承自
YourApiControllerBase
@CodeCaster。我不同意,这是一个他用于基于主干的客户端的API。他的客户机天生就与他的MVC项目绑定在一起,就像他的API一样。如果他正在创建一个通用API,那么您所说的是正确的。但我不认为他是。在任何项目中,实现这一通用目标都比你想象的要容易。您只是不想在您的网站项目中使用数据服务。这就是我要说的。如果您添加了最少量的报告、外部维护(非Web UI或用于管理界面的不同网站项目)或诸如此类的东西,您将立即受益于不必运行主网站(Project)来访问您的数据层。例如,如果API只是作为客户机的简单数据持久性API,那么将所有内容都放在单独的项目中意味着您将有任何重复配置等的附加繁琐操作,所有重复设置,一个额外的项目需要部署和托管,等等。但是你是对的,一个API超出了它原来的功能是很常见的。你希望在一个API区域中粘贴ApicController会有什么好处?这样,它们仍然包含在您的网站中,我认为API不属于您的网站。我会为API控制器创建一个单独的项目,并从您的网站项目链接到该项目。为此,您最终可以在站点中创建一个空的控制器,该控制器继承自
YourApiControllerBase
@CodeCaster。我不同意,这是一个他用于基于主干的客户端的API。他的客户机天生就与他的MVC项目绑定在一起,就像他的API一样。如果他正在创建一个通用API,那么您所说的是正确的。但我不认为他是。在任何项目中,实现这一通用目标都比你想象的要容易。您只是不想在您的网站项目中使用数据服务。这就是我要说的。如果您添加了最少量的报告、外部维护(非Web UI或用于管理界面的不同网站项目)或诸如此类的东西,您将立即受益于不必运行主网站(Project)来访问您的数据层。例如,如果API只是作为客户机的简单数据持久性API,那么将所有内容都放在单独的项目中意味着您将有任何重复配置等的附加繁琐操作,所有重复设置,一个额外的项目需要部署和托管,等等。但您是对的,API的原始功能增长过快是很常见的。