【发布时间】:2020-05-21 16:03:14
【问题描述】:
我是 REST 新手,并试图了解以下方法是否是公认的 RESTful 实践。
作为一个有代表性的例子,假设在我的域中,我有一条由多个 Legs 组成的 Route。可以将新位置添加到路线中,从而在路线中创建额外的航段。另一种创建额外支线的方法是选择驱动程序。 (域将根据驱动程序支持的腿创建腿)。所以:
我可以使用以下资源查看路线、路线及其支线:
GET /route/{route_id}
GET /route/{route_id}/legs
在向路线添加航段时,我想显示一个位置列表,用户可以从中进行选择。所以我实现了一个位置资源。位置大多是静态的,由单独的系统提供。
GET /route/{route_id}/locations
所以我想采取的方法是:
POST /route/{route_id}/locations
当此资源也被发布时(连同 JOSN 表示中的到达时间等信息),它会在路径中创建新支路的域中产生副作用。
对于司机来说,它会是这样的:
GET /route/{route_id}/drivers
POST /route/{route_id}/drivers
所以在 POST 之后:
/route/{route_id}/locations
用户会浏览到:
GET /route/{route_id}/legs
看看新的腿。
这是解决上述情况的可行方法吗?
另一种选择是:
GET /route/{route_id}/legs/locations
POST /route/{route_id}/legs/locations
虽然从概念上看这似乎没有什么不同(资源是一样的 - URL 的名称对于 REST 来说是多余的)。
【问题讨论】:
标签: api restful-url rest