如何在Rest API

时间:2015-09-15 20:30:23

标签: rest

我有一个关于如何正确设计关联和取消关联资源的REST接口的问题。我有rooms代表房屋中的房间,things代表房间内的房间。用户通过POST到/rooms将房间添加到他们的家中,并通过POST到/things来创建“事物”。大。我们有房间和东西等等。问题是,我如何关联和解除这些事情?

选项,据我所知:

选项1 - PUTthings资源的rooms数组。若要取消关联,请将新数组投放到rooms资源,少一thingId

选项2 - POST/rooms/:roomId/thing_associations。通过DELETE返回要用于/rooms/:roomId/thing_associations/:associationId的资源关联标识符。这类似于连接表。

选项3 - POST/rooms/:roomId/devices/:deviceId创建关联。 DELETE/rooms/:roomId/devices/:deviceId以销毁该关联。我个人讨厌这个选项,因为它会在我的大脑中造成紧张: - |

会爱你的想法。还有什么我没想过的?可能。

谢谢!

1 个答案:

答案 0 :(得分:0)

一件事可以同时在两个房间吗?如果不是,我会选择选项1.

获取 - / rooms / 房间清单

获取 - / rooms / $ {room_id} 房间详情

POST- / rooms / $ {room_id} 添加或更新房间

DELETE - / rooms / $ {room_id} 删除房间

GET - / rooms / $ {room_id} / things / $ {room_id}

中列出的东西ID列表

获取 - / rooms / $ {room_id} / things / $ {thing_id} $ {thing_id}的详细信息

POST - / rooms / $ {room_id} / things / $ {thing_id} 添加或更新$ thing_id

DELETE - / rooms / $ {room_id} / things / $ {thing_id} 删除$ thing_id

等...