我该如何处理REST中的子资源?

时间:2012-12-01 23:11:41

标签: api rest

我理解(我认为......)REST的基础知识,但在尝试设计我的API时,我对子资源有点困惑,我将尝试用一个例子来解释:

假设我的应用程序有两个资源,用户和房间,用户可以创建房间和连接房间,以下REST URI是否正确?

  1. GET / users /< userID> / joinedRooms
  2. GET / users /< userID> / createdRooms
  3. 或应该是/ users /< userId> / rooms / joined或/ users /< userId> / rooms?query = joined?

    如何“获得类似房间”的URI会是什么样子? /房间/< roomId> / similar或/ rooms /?query =相似?

1 个答案:

答案 0 :(得分:3)

网址设计是艺术形式,不是REST约束。 REST没有说明您的URL应该是什么样子。 URL是不透明的字符串,其内容无关紧要。

  • /users/<userID>/joinedRooms
  • /users/<userID>/rooms/joined
  • /users/<userID>/rooms?query=joined

您建议的任何这些选项都同样有效。选择最适合您的方案,只要它代表一种资源。

如何“获得类似的房间”URI看起来像

再次,无论你想要什么。 /yaz1-oPhce6~X_怎么样? : - )

在做出决定时,我建议你尝试考虑诸如易于实施,美观等等。