0

我正在编写一个 REST API,它基本上提供了两种资源:UsersCars. 使用 API,您可以发布/获取每个资源。

但现在我有一个自定义操作,基本上可以为用户提供一辆新车。这将需要后端的 cron 作业并执行操作。它不适合 POST/PUT 的模型。我只是想知道什么是最好的路线?

我想到了:

/addNewCarToUser/:user_id

我知道这个问题过于本地化,但我只是想知道这是否只是一个判断电话,或者这种类型的请求是否有约定?谢谢

4

3 回答 3

2

这取决于。汽车是否只有属于用户才存在?或者它们可以单独存在吗?

如果它们仅在属于用户的上下文中,我只会让汽车属于用户,并有这样的路线来创建一个新的路线:

POST /users/:id/cars

或者,您可以通过一辆车指定谁拥有一个车主(似乎违反直觉,但从数据上看,一辆车通常有 0 个或 1 个车主)。路线可能是:

POST /cars?user_id=######

另一个合理的关系是拥有第三个资源 Ownerships,然后您可以创建一辆新车,然后是一个新的所有权,因为创建一辆汽车并将其提供给用户将是两个新资源。

POST /cars
POST /ownerships
于 2012-11-28T06:14:39.073 回答
0

好吧,“addNewCarToUser”是一个动作,因此它违反了资源主体。

我能想到

/user/:user_id/汽车

这将是 GET 或 POST 的资源。

于 2012-11-28T06:04:38.093 回答
0

我会执行一个POST,因为此操作将导致创建新数据。

不确定您使用的是什么命名约定,但我会这样做:

/users/:id/new_car # via POST
于 2012-11-28T06:05:08.397 回答