我正在使用Laravel构建我的API,它具有很棒的路由功能。
我想支持传递用户ID的任何地方,允许传递“me”,这意味着代表令牌所代表的用户。
E.g。
/users/1234 => /users/me
/competitions?user=1234 => /competitions?user=me
/users/1234/threads/comments => /users/me/threads/comments
对于查询字符串,我将处理内部用Auth::user()->id
替换“我”,但是对于“我”是路径的一部分的路线,我正在考虑捕获这些路径,用输出替换“我”从Auth::user()->id
开始,然后执行3xx重定向到修改后的路线。
这里有两个问题。
1)这是一个可行/好主意还是我应该只有一个特定的/ users / currentUserInformation端点,以便客户端可以获取当前用户ID,然后他们负责构建具有从该响应返回的id的URL ?
2)3xx代码符合要求?它不是“你应该从这里请求这些信息”而是“它只是一个”你想要的信息实际上来自这里,但要么可以获得这些信息“(又称缓存相等)。
答案 0 :(得分:1)
1)如果客户端必须进行身份验证,那么他们应该已经知道当前用户。我不确定为什么你觉得需要跟踪它并将它还给它们,或者提供一个查找它的神奇捷径。如果您真的想这样做,我建议为当前经过身份验证的用户提供单独的资源。
2)看起来300多个选择就像你要去的那样近。或者可能是303见其他。您所描述的内容听起来非常像为资源设置多个规范表示,这被认为是非RESTful。