是否应从经过身份验证的REST API端点返回特定于用户的属性?

时间:2015-01-12 15:23:28

标签: rest architecture

在我的系统中,如果我获取端点api/businesses/1,则返回有关业务的详细信息(地址,营业时间等)作为JSON。如果在请求的标头中传递了访问令牌,则服务器可以识别发出请求的用户,并且可以使用用户特定的数据(地址,营业时间,PLUS,用户是否已为此业务添加书签)补充返回的数据

我的问题是 - 是否应该从这样的一个请求返回经过身份验证/未经过身份验证的属性,还是应该将它们拆分为两个单独的请求? (/api/business/1表示地址和营业时间,api/user/123/bookmarks表示用户的书签业务)。后一种方法意味着我可以缓存第一个请求响应,这将是有用的。

1 个答案:

答案 0 :(得分:2)

在这种情况下,最好将其拆分为两种方法

/api/business/1

api/user/123/bookmarks/

原因:

  • 它使API更清洁 - 每个API方法都有明确定义的工作
  • 测试你的API更容易,因为你将在这里摆脱状态(我所说的状态是指使用令牌来获取用户)。因此,通过传递相同的业务/用户ID,您可以期望始终获得相同的结果
  • 是的,你可以缓存它