更正此资源的RESTful调用

时间:2011-02-09 10:26:57

标签: rest restful-url

我目前正在为现有基础架构设计一个RESTful接口,而我正在努力解决一个特定问题。

我们有一组用户可以在/users访问 可以在/users/1

访问该集合的元素

但是每个用户都有一个需要能够访问的朋友列表。 users/1/friends会成为这里的宁静召唤吗?它没有资格成为它自己的集合,因为它只与一个用户有关。

非常感谢任何帮助

3 个答案:

答案 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。