Web API -控制器设计
Web API - Controller Design
我有一个Web API项目,目前有一个ServicesController。我通过以下调用获取服务器的服务列表:
$http.get(rootWebApiUrl + '/api/services/' + server)
ServicesController有这样的签名:
public IEnumerable<FirstSolarService> Get(string id)
现在我想再打两个电话。
- 获取服务本身路径内的Windows文件夹
- 用户在#1中选择文件夹后,显示该文件夹中的dll。
我有一个选择,只要我的Web API控制器去。我应该把这些都放在ServicesController中,还是应该为我返回的每种类型的对象创建单独的控制器?如果是后者,那么我会创建这两个控制器:
- FoldersController
- FilesController
但尴尬的是(也许)我通过传入文件夹或文件的ID以外的其他东西来调用它们。要获取文件夹,我将传入服务名称。为了获取文件,我将传入服务的路径。这是应该做的吗?
我不认为你应该把它分成多个控制器,除非它们每个都有相当大的功能,或者如果文件夹和文件是真正的域对象/存储库实体。
你可能知道,你并不局限于Get
/Post
/Put
/Delete
约定在webapi中的方法名。如果需要,可以指定操作名称。例如,如果您想要一个Folders
方法,您可以添加一个:
[HttpGet]
public ReturnType Folders(string serviceName)
{
}
上面的API URL将是'/api/services/folders/' + server
。
你不需要创建自定义路由——默认的路由包含一个{action}
组件。理论上,我会问你自己:服务是由文件夹组成的吗?没有服务的文件夹可以存在吗?如果文件夹依赖于服务,那么我认为在服务控制器中包含该功能是可以的。如果没有,那么就根据功能拆分控制器。
相关文章:
- Nodejs API控制器,用于在API之间切换
- 表示不将对象从服务发送到 API 控制器
- 尝试通过 Angular 控制器使用 Google Geocode API 进行地理编码,值未定义
- ASP.NET Web API 控制器更新行
- 用于使用 DateTime 创建新实体的 API 控制器
- 从服务器控制器访问 MEANjs 中的 API 端点
- AngularJS $http.post ASP.NET 具有简单类型参数的 Web API 控制器
- 这是什么意思???香草节点.js当我使用强环控制器 API 时,I/O 阻塞会清除
- Web API 控制器操作参数始终为 null
- .NET Web Api控制器变量作为javascript函数参数
- 使用Angular控制器显示API的JSON数据
- 从视图发送到web api控制器时,数据始终为null
- jquery调用c#api控制器
- 表示堆栈控制器服务器端未连接到API
- Web Api 2 -如何从$http调用发送属性到控制器(属性路由)
- Node.js + mongo + express MVC API:如何使用控制器
- 用Web Api控制器参数映射AngularJs的QueryString
- 如何在mvc4中从视图发送多个参数到API控制器
- 从api控制器加载的路由永远不会被调用
- Angularjs:我可以让我的指令在控制器API回调后运行吗?