是/我在API中重定向一个好主意?

时间:2013-09-11 00:24:52

标签: php api http laravel http-status-codes

我正在使用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代码符合要求?它不是“你应该从这里请求这些信息”而是“它只是一个”你想要的信息实际上来自这里,但要么可以获得这些信息“(又称缓存相等)。

1 个答案:

答案 0 :(得分:1)

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

2)看起来300多个选择就像你要去的那样近。或者可能是303见其他。您所描述的内容听起来非常像为资源设置多个规范表示,这被认为是非RESTful。