2

我目前正在为现有基础设施设计一个 RESTful 接口,并且我正在努力解决一个特定方面的问题。

我们有一个用户集合,可以在 访问/users 并且该集合的元素可以在/users/1etc访问

然而,每个用户都有一个需要能够访问的朋友列表。users/1/friends在这里打个电话是不是很安静?它不符合成为它自己的集合的条件,因为它只与一个用户有关。

任何帮助将不胜感激

4

3 回答 3

3

就 RESTful 设计而言,URI 可以是任何你想要的。但是,为了确保您的界面可以以 RESTful 方式访问,您确实需要执行以下操作:

<user>
    <name>Bob Smith</name>
    <link rel="friends" href="/peeps/1/amigos" />
</user>

通过添加额外的间接层,您的客户端可以发现朋友列表的链接,并且客户端不再关心该 URI 是什么。您可以随时更改它。

URI 是服务器的一个实现细节,客户端不应该在它们上耦合。唯一的耦合应该是 rels 和媒体类型。

于 2011-02-09T12:13:28.230 回答
2

我会说/user/{id}/friends是一个合适的标识符。当然你也可以使用/users/{id}/friends,但我个人更喜欢区分物品资源和收藏资源。

于 2011-02-09T10:29:24.493 回答
1

我认为您的解决方案没有任何问题。作为它所代表的 URI 的完美选择。

于 2011-02-09T11:22:26.140 回答