REST资源的JSON表示是否应使用相关资源的URI?

时间:2011-07-21 16:15:42

标签: json rest resources

在REST资源的JSON(或XML)表示中使用URI是最佳做法,例如

例如,对于包含附件列表的资源,其中每个附件都有一个ID,可以使用http://myserver.com/resources/attachments/之类的网址来检索它:

{
    fileName: "screenshot.png"
    contentType: "application/octet-stream"
    id: 52004
}

我是否还应该添加像

这样的uri元素
{
    fileName: "screenshot.png"
    contentType: "application/octet-stream"
    id: 52004
    uri: /resources/attachments/52004
}

2 个答案:

答案 0 :(得分:8)

是的,我认为您应该包含指向集合中每个项目的链接。没有链接,API不是RESTful(更重要的是,没有用)。如果您认为人类客户端宁愿拥有链接而不是如何通过ID请求项目的说明,则同样适用于非人类客户端。您还应通过提供链接关系,让客户了解项目与当前资源的关系:

link : { uri: "/resources/attachments/52004", rel: "/rels/file-attachment" }

约翰

答案 1 :(得分:0)

如果没用,那么如果用户请求资源,你仍然需要从服务器发送信息,并且你从它的id而不是它的URI中获取资源。

此外,有时某些资源不需要URI,因为它们永远不会被请求或无法直接请求。