我正在编写一个基本上提供两种资源的REST API:Users
和Cars
。使用API,您可以POST / GET每个资源。
但现在我有一个自定义动作,基本上会给用户一辆新车。这将需要后端的cron作业并执行操作。它不适合POST / PUT模型。我只是想知道最好的路线是什么?
我想到了:
/addNewCarToUser/:user_id
我知道这个问题过于局部化,但我只是想知道这只是一个判断调用还是有这种请求的约定? 感谢
答案 0 :(得分:2)
这取决于。如果汽车属于用户,它们是否只存在?或者他们可以自己存在吗?
如果它们只属于属于用户的环境,我只会让汽车属于用户并拥有这样的路线来创建一个新的:
POST /users/:id/cars
或者您可以指定汽车拥有者拥有者的所有者(似乎违反直觉,但数据方面,汽车通常拥有0或1个拥有者)。路线可能是:
POST /cars?user_id=######
另一个合理的关系是拥有第三个资源所有权,然后你可以创建一个新车然后新的所有权,因为创建汽车并将其提供给用户将是2个新资源。
POST /cars
POST /ownerships
答案 1 :(得分:0)
嗯,“addNewCarToUser”是一个动作,因此它违反了资源主体。
我能想到
/用户/:USER_ID /汽车
这将是GET或POST的资源。
答案 2 :(得分:0)
我会执行POST
,因为此操作将导致创建新数据。
不确定您使用的命名约定,但我会这样做:
/users/:id/new_car # via POST