我应该将用户ID放在REST URL中还是从身份验证中获取

时间:2016-03-12 14:13:09

标签: node.js api rest authentication express

我正在使用Express.js构建RESTful api。我们说我有一些Users拥有Resources。获取特定Resources的{​​{1}}的好方法是:User

我为api实施了身份验证,因此可以从GET /users/:user_id/resources而不是从网址获取user_id。这意味着我可以使用req.user.user_id从经过身份验证的用户获取资源。

我的问题:这是一种好的做法,为什么(或为什么不呢)?

1 个答案:

答案 0 :(得分:1)

我认为,这是不好的做法。资源应该返回所有资源,而不是以任何方式过滤。我想说最好有一个额外的端点/user/resources。通过这种方式,回复将是:

  1. /users/15/resources - 如果允许,将为用户15提供资源或403。
  2. /user/resources - 将为经过身份验证的用户提供资源(如果我是用户15,则会给出与1中相同的响应。)或者404或403.
  3. /resources - 将提供未过滤的资源(如果禁止,则只是不创建此端点,或仅返回公共资源)。