我目前正在为现有基础架构设计一个RESTful接口,而我正在努力解决一个特定问题。
我们有一组用户可以在/users
访问
可以在/users/1
等
但是每个用户都有一个需要能够访问的朋友列表。 users/1/friends
会成为这里的宁静召唤吗?它没有资格成为它自己的集合,因为它只与一个用户有关。
非常感谢任何帮助
答案 0 :(得分:3)
就RESTful设计而言,URI可以是您想要的任何内容。但是,为确保您可以在RESTful中访问您的界面,您需要执行以下操作:
<user>
<name>Bob Smith</name>
<link rel="friends" href="/peeps/1/amigos" />
</user>
通过添加额外的间接层,您的客户端可以发现朋友列表的链接,并且客户端对该URI的重要性不再重要。您可以随时更改它。
URI是服务器的实现细节,客户端永远不应该对它们进行耦合。唯一的耦合应该是在rels和媒体类型上。
答案 1 :(得分:2)
我说/user/{id}/friends
是一个合适的标识符。当然你也可以使用/users/{id}/friends
,但我个人更喜欢区分项目资源和收集资源。
答案 2 :(得分:1)
我没有看到您的解决方案有任何问题。非常好的选择作为它代表的URI。