从所有孩子那里获得资源的 RESTful 方法是什么?



>假设我有以下 api,其中 vin 是车辆识别号,属于一辆汽车。

GET /fleets/123/cars/55/vin
GET /fleets/123/cars/55/history

我想为车队获得所有汽车的所有葡萄酒。其中哪个更可取:

GET /fleets/123/cars/all/vin
GET /fleets/123/cars/*/vin
GET /fleets/123/vins
GET /fleets/123/cars/vins

前两个保留层次结构并使控制器更直观。最后三个感觉它打破了一致性。

这些是首选的还是有更好的方法?

这主要是一个基于意见的问题。这里没有一条真正的方法,所以你会得到我的意见。

我不确定vin是什么,但如果它是一种资源,并且有一个vins集合作为fleet资源的子资源,我希望它位于这里:

GET /fleets/123/vins

这向我传达了一个vin不是汽车的下属。这是它自己的东西,我正在为特定舰队获得所有葡萄酒。

vin也作为汽车的从属(对我来说(存在这一事实与此无关。对我来说,对于那些人来说,他们住在这里是完全有道理的:

GET /fleets/123/cars/55/vin

同样,如果我将最后 2 个 API 建模为 2 个函数,我会调用它们:

findVinsForFleet(fleetId: number);
findVinForCar(fleetId: number, carId: number);

最新更新