【发布时间】:2012-04-25 14:19:22
【问题描述】:
我们目前正在设计一个内部 REST api。我们有以下用例:
- 用户 (109) 想要阅读他发送给另一个用户 (110) 的消息
- 阅读用户 (109) 通过他在身份验证后(执行 GET 请求时)收到的令牌凭据为应用所知
- 我们假设在这个例子中用户 109 是发送者,110 是接收者
从用户的角度总结“给我我(109)发给110的邮件”
我们想到了以下 URI,但我们无法决定采用哪一个:
a) GET http://localhost:9099/api/mails/109?receiverUserId=110
b) GET http://localhost:9099/api/mails?senderUserId=109&receiverUserId=110
c) GET http://localhost:9099/api/mails?receiverUserId=110
d) GET http://localhost:9099/api/mails/me/to/110 (when logged in as 109 via token credentials we know that "me" is 109)
f) GET http://localhost:9099/api/mails/109/to/110 (explicit request, e.g. for admins … has to be guarded against illegal access)
所有链接都是“上下文敏感的”,将链接之一发送到接收器 (110) 将产生执行 GET 请求的不同结果。
我想知道您对使用哪个网址的看法。
非常感谢任何帮助。
干杯 马塞尔
【问题讨论】:
-
观察一下:(b) 和 (d) 是相同的。
-
我投票给 c。众所周知,我没有看到指出阅读用户的意义。 (不过缓存除外)