在Web API 2项目中混合使用REST和RPC逻辑

e4r*_*dog 7 c# rest rpc asp.net-web-api

使用Web API 2和最近添加的属性路由为我提供了为公司需求创建中央API应用程序的想法.

但我的问题是纯REST方法在某种程度上限制了我们的企业数据交换需求.

所以看完我决定遵循一个混合的方法:

有些控制器是纯REST,有些是RPC风格.

关于路由的文章中的一个好主意是(为RpcApi更改了一点添加{id}占位符):

routes.MapHttpRoute(
  name: "RestApi",
  routeTemplate: "api/{controller}/{id}",
  defaults: new { id = RouteParameter.Optional }
);

routes.MapHttpRoute(
  name: "RpcApi",
  routeTemplate: "services/{controller}/{action}/{id}",
  defaults: new { id = RouteParameter.Optional }
);
Run Code Online (Sandbox Code Playgroud)

我需要决定并需要你的建议是:

REST和RPC样式之间的分离/域操作的分类:

在我的Web API中创建2个区域会是一个很好的解决方案吗?一个用于RPC,一个用于REST?

但那么我将如何对我的域名操作进行分类(一级)?(ERP,CRM,工资).最初我认为这些将是适当的领域.

另一个想法是通过控制器文件夹下的单独文件夹为控制器创建物理分离,尽管这意味着具有唯一的控制器名称,因为子文件夹与框架无关.

附加信息:

组织ASP.NET MVC/Web API项目的有趣观点

有任何想法吗?