我应该为依赖实体设置单独的休息控制器吗?

时间:2017-08-29 06:18:22

标签: java rest

我的春季启动应用中有两个实体:DealerCar

Car不能归Dealer所有。

现在,我有两组端点(即两个控制器类):DealerControllerCarController

DealerController处理CRUD个实体的Dealer次操作。 CarController处理UPDATE个实体的DELETEREADCar次操作。

我的问题是关于CREATE的{​​{1}}操作。端点接收Car的ID,Dealer请求正文将是POST信息。

我应该将它放在CarDealerController下吗?

2 个答案:

答案 0 :(得分:1)

由于操作是关于创建Car,因此它主要涉及Car实体。因此,遵循 OOP 分离关注高耦合的指导原则,需要将其放在CarController内。< / p>

答案 1 :(得分:1)

两个控制器都应该存在,因为它们将用于特定操作。

DealerController将负责,

  • 添加新的经销商/经销商 - POST
  • 更新经销商详情/经销商/ 2 - PUT
  • 获取经销商名单 - /经销商 - 获取
  • 获取特定经销商/经销商的详细信息/ 2 - GET
  • 删除经销商 - / dealer / 2 - DELETE

CarController将负责,

  • 添加新车/汽车 - POST
  • 更新汽车详情 - / cars / 1 - PUT
  • 获取所有汽车/汽车清单 - GET
  • 通过经销商/汽车获取所有汽车的清单?dealerId = 2 / GET
  • 获取特定汽车/汽车的详细信息/ 1 - GET
  • 删除汽车 - / cars / 1 - DELETE

如果您严格遵守RESTful惯例,CarController的终点不应该包含dealerId。添加新车时,请求体应包含汽车属性的JSON表示和dealerId,因为每辆车只能有一个经销商

e.g。

{
    "dealerId": 2,
    "manufacturer": "bmw",
    "color": "white",
    "model": "320d"
}

因此,汽车的车型应该将dealerId或经销商对象作为其属性,具体取决于您需要多少细节。