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

mjn*_*mjn 5 rest resources json

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

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

{
    fileName: "screenshot.png"
    contentType: "application/octet-stream"
    id: 52004
}
Run Code Online (Sandbox Code Playgroud)

我是否还应该添加一个uri元素

{
    fileName: "screenshot.png"
    contentType: "application/octet-stream"
    id: 52004
    uri: /resources/attachments/52004
}
Run Code Online (Sandbox Code Playgroud)

小智 8

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

link : { uri: "/resources/attachments/52004", rel: "/rels/file-attachment" }
Run Code Online (Sandbox Code Playgroud)

约翰