我正在构建一个API,登录的用户可以看到他或她的信息。用户还可以更改其信息。只有用户应该能够看到和更改自己的信息。使用下面的路线更好吗
/me
/me/items或(使用保单)
/users/1
/users/1/items发布于 2020-04-18 01:52:35
/users/1比/me稍好一些,但在实践中可能根本无关紧要。
从高层次上讲,REST根本不关心URI拼写。通用组件将URI视为不透明的;只有源服务器有试图从标识符提取语义信息的业务。
从设计的角度来看,/me很容易受到这样一个事实的影响,即您组合了两个不同的关注点:“这个资源是关于谁的?”“允许谁访问?”今天,"Bob“是唯一被授权阅读"Bob”资源的人,但这两个想法总是结合在一起并没有什么特别的理由。
从REST的角度来看,让相同的资源标识符根据其他头部信息表示不同的含义可能会使表示的缓存出现问题,因为在决定何时可以重用表示时,您会迫使缓存变得更加智能。
HTTP通过Vary报头解决了其中的一些问题,它允许源服务器向通用组件描述HTTP请求的哪些部分可能会更改要使用的正确表示。
但在实践中,即使这样也是无关紧要的,因为HTTP doesn't permit共享缓存来存储对具有授权标头字段的请求的响应。
https://stackoverflow.com/questions/61268735
复制相似问题