4

在资源 id 可以通过其他方式识别的情况下(例如 current_user 用于需要身份验证的页面),从 url 中省略 id 是否是个好主意?(例如,/students/1/homework/students/homework)。

另外,这会对网址的宁静有什么影响吗?我怀疑它适用于 HTTP 动词,但对于自定义操作我不太确定。

4

3 回答 3

2

我想这取决于您的应用程序以及对客户有用的内容。如果您的连接用户是可以查看所有学生作业的管理员,那么该/students/1/homework路径是有意义的,但是如果只有学生使用此资源,那么该路径/students/homework更有意义。
本质上,后者可以被认为是namespace所有学生资源的一种。
我发现拆分这些资源非常有用,namespaces以免混淆客户端编写者并保持您的授权非常清晰(谁可以看到/做什么)。

于 2013-01-03T09:31:30.580 回答
1

URL 应始终指向一个特定资源。它们可以是绝对的,也可以是相对的。把它想象成一个文件系统。在某些情况下(安全性/可扩展性),您不能允许列表。

  • 基于会话/相对资源 /students/me, /students/latest,/students/latest/homework/lastest
  • 绝对 资源/students/3,,,/students/3/homework/teachers/3/homework/3
于 2014-04-24T08:45:20.260 回答
1

在您的示例中,这 2 个 URI 标识不同的资源:

  • 用户#1的作业,
  • 当前用户的作业。

选择很大程度上取决于您认为人们想要参考的资源(例如通过电子邮件或书签)。

我不认为第二种解决方案是不稳定的,但我更喜欢第一种,因为它与许多附加功能兼容(例如,教师可以访问学生作业的表示)。

于 2013-01-03T09:42:42.913 回答