[英]REST API for custom action other than PUT/POST/GET
我正在编写REST API,它基本上提供了两种资源: Users
和Cars
。 使用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.