对 GET 请求的响应是否应该包含其他资源的 URI?

Should a response to a GET request include URIs to other resources?

我目前正在编写一个基本的 RESTful API 来管理学生、讲座和教授。这是一个更好地理解 REST 的小项目。

现在,在我的数据库 (NoSQL/MongoDB) 中,我有一些学生正在上课。为了表示这种关系,每个学生都有一组讲座 ID(讲座主键)。

从 API 获取学生时,lectures 数组应该仅包含 ID/primary 键,还是包含获取讲座的 URI?

据我了解,严格来说 return URI 应该 RESTful 正确吗?

谢谢!

Should a response to a GET request include URIs to other resources?

经常,是的。查看万维网 - 在超文本文档中跟随 links 是我们四处走动的方式。链接到公共内容(图像、样式表)使我们能够利用缓存并支持“网络规模”。

但是 - 这是一种设计选择;如果跟随 link 不是明智之举,那么 link 可能不应该存在。

在某些情况下,使用 URI 模板和参数比显式列出资源标识符更有意义。在网络上,这通常看起来像一个 HTML 表单,带有允许您选择要应用于模板的参数的输入控件。

它一直在权衡取舍。