1

我正在使用 Laravel 构建我的 API,它具有很棒的路由能力。

我想支持任何可以传递用户 ID 的地方,允许传递“我”,这意味着代表令牌所代表的用户。

例如

/users/1234                  => /users/me
/competitions?user=1234      => /competitions?user=me
/users/1234/threads/comments => /users/me/threads/comments

对于查询字符串,我将处理内部替换“me”,Auth::user()->id但对于“me”是路径的一部分的路由,我正在考虑捕获这些路由,用输出替换“me”,Auth::user()->id然后执行 3xx 重定向到修改后的路线。

所以这里有两个问题。

1)这是一个可行/好主意还是我应该只有一个特定的 /users/currentUserInformation 端点,以便客户端可以获取当前用户 ID,然后他们负责使用从该响应返回的 ID 构建 URL?

2) 什么 3xx 代码符合要求?这不是“您应该从这里请求此信息”,而只是“您想要的信息实际上来自这里,但任何一个都可以获取此信息”(又名缓存相等)。

4

1 回答 1

1

1)如果客户端必须进行身份验证,那么他们应该已经知道当前用户。我不知道为什么你觉得有必要跟踪它并将它还给他们,或者提供一个神奇的快捷方式来查找它。如果您真的想这样做,我建议为当前经过身份验证的用户提供一个单独的资源。

2) 看起来 300 多项选择与您将获得的一样接近。或者可能是 303 See Other。你所描述的听起来非常像一个资源的多个规范表示,这被认为是非 RESTful 的。

于 2013-09-11T10:37:59.083 回答