繁体   English   中英

用于PUT / POST / GET以外的自定义操作的REST API

[英]REST API for custom action other than PUT/POST/GET

我正在编写REST API,它基本上提供了两种资源: UsersCars 使用API​​,您可以POST / GET每个资源。

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

我想到了:

/addNewCarToUser/:user_id

我知道这个问题过于局部化但我只是想知道这只是一个判断调用,还是有这种请求的约定? 谢谢

这取决于。 如果汽车属于用户,它们是否只存在? 或者他们可以自己存在吗?

如果它们只属于属于用户的环境,我只会让汽车属于用户并拥有这样的路线来创建一个新的:

POST /users/:id/cars

或者您可以指定汽车拥有者拥有者的所有者(似乎违反直觉,但数据方面,汽车通常拥有0或1个所有者)。 路线可能是:

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

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

POST /cars
POST /ownerships

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

我能想到

/用户/:USER_ID /汽车

这将是GET或POST的资源。

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

不确定你正在使用什么命名约定,但我会做这样的事情:

/users/:id/new_car # via POST

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM