我目前正在为现有基础设施设计一个 RESTful 接口,并且我正在努力解决一个特定方面的问题。
我们有一个用户集合,可以在 访问/users
并且该集合的元素可以在/users/1
etc访问
然而,每个用户都有一个需要能够访问的朋友列表。users/1/friends
在这里打个电话是不是很安静?它不符合成为它自己的集合的条件,因为它只与一个用户有关。
任何帮助将不胜感激
我目前正在为现有基础设施设计一个 RESTful 接口,并且我正在努力解决一个特定方面的问题。
我们有一个用户集合,可以在 访问/users
并且该集合的元素可以在/users/1
etc访问
然而,每个用户都有一个需要能够访问的朋友列表。users/1/friends
在这里打个电话是不是很安静?它不符合成为它自己的集合的条件,因为它只与一个用户有关。
任何帮助将不胜感激
就 RESTful 设计而言,URI 可以是任何你想要的。但是,为了确保您的界面可以以 RESTful 方式访问,您确实需要执行以下操作:
<user>
<name>Bob Smith</name>
<link rel="friends" href="/peeps/1/amigos" />
</user>
通过添加额外的间接层,您的客户端可以发现朋友列表的链接,并且客户端不再关心该 URI 是什么。您可以随时更改它。
URI 是服务器的一个实现细节,客户端不应该在它们上耦合。唯一的耦合应该是 rels 和媒体类型。
我会说/user/{id}/friends
是一个合适的标识符。当然你也可以使用/users/{id}/friends
,但我个人更喜欢区分物品资源和收藏资源。
我认为您的解决方案没有任何问题。作为它所代表的 URI 的完美选择。