【发布时间】:2018-04-27 23:25:39
【问题描述】:
我想知道以下 API 结构的最佳做法是什么:
OrderItemDepartment 与 OrderItemSection 具有一对多关系,而 OrderItemSection 又与 OrderItem 具有一对多关系。
将 api 划分为控制器,每个控制器都有 CRUD 操作,例如:
-
OrderItemDepartmentsController
- 获取:OrderItemDepartments。
-
OrderItemSectionsController
- 获取:OrderItemSections。
-
OrderItemsController
- 获取:OrderItems。
..或者有一个控制器通过路由为 OrderItems、Departments 和 Sections 提供服务:
-
OrderItemsController
- 获取:订单项/部门
- 获取:OrderItems/Sections
- 获取:OrderItems*
- 获取:订单项/部门
【问题讨论】:
-
我认为你应该避免使用上帝控制器。上帝控制器/类等从来都不是一个好主意。相反,您应该“坚持”单一责任原则并将功能分布在它所属的地方。这将使您拥有非常直观和简单的 RESTful 路由。
-
我同意@KrzysztofLa。当涉及到您的 API 结构时,您需要一个清晰的关注点分离。拥有一个控制器来统治它们(或上帝控制器)会在开发后期回来咬你。从一个非常具体的控制器方法返回尽可能少的数据,用户会感谢你的。
标签: rest asp.net-web-api .net-core