我的春季启动应用中有两个实体:Dealer
,Car
Car
不能归Dealer
所有。
现在,我有两组端点(即两个控制器类):DealerController
,CarController
DealerController
处理CRUD
个实体的Dealer
次操作。 CarController
处理UPDATE
个实体的DELETE
,READ
,Car
次操作。
我的问题是关于CREATE
的{{1}}操作。端点接收Car
的ID,Dealer
请求正文将是POST
信息。
我应该将它放在Car
或DealerController
下吗?
答案 0 :(得分:1)
由于操作是关于创建Car
,因此它主要涉及Car
实体。因此,遵循 OOP 中分离关注和高耦合的指导原则,需要将其放在CarController
内。< / p>
答案 1 :(得分:1)
两个控制器都应该存在,因为它们将用于特定操作。
DealerController将负责,
CarController将负责,
如果您严格遵守RESTful惯例,CarController的终点不应该包含dealerId。添加新车时,请求体应包含汽车属性的JSON表示和dealerId,因为每辆车只能有一个经销商
e.g。
{
"dealerId": 2,
"manufacturer": "bmw",
"color": "white",
"model": "320d"
}
因此,汽车的车型应该将dealerId或经销商对象作为其属性,具体取决于您需要多少细节。