Web Services 取得数据时,使用者识别码是否应该在URI中?

cmssoen2  于 2022-11-15  发布在  其他
关注(0)|答案(1)|浏览(148)

我正在创建一个api,客户端可以发出一个GET请求来获取所有用户文档。我不确定是否应该在URI中包含用户id。我不需要在url中包含id,因为我已经发布了一个包含用户id的jwt令牌。那么根据restful设计原则,哪一个“更好”呢?

GET /documents

GET /users/{id}/documents

共享文档是否也应该有GET /documents/shared这样的URI,或者上面的一个仍然可以使用?

jdgnovmf

jdgnovmf1#

标识资源所需的所有内容都应包含在资源标识符中。
这里的动机很简单--通用组件将假定目标URI是资源的标识符,因为规范是这么说的。事实上,每个人都使用具有 * 相同 * 语义的消息,这意味着通用组件可以做有用的事情。
这类事情有两种情况很重要:
如果URI标识了资源,那么我可以将该标识符粘贴到堆栈溢出中的一个答案中,当您单击该链接时,您得到的正是我想要的资源,而不是完全不同的东西,因为您的JWT标记没有复制我的标记。
如果URI标识了资源,那么我们可以使用通用缓存,这些缓存知道如何重用HTTP响应,并且知道在适当的时候自动使先前缓存的具有相同标识符的响应无效。

相关问题