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

是否应该从经过身份验证的REST API端点返回特定于用户的属性?,rest,architecture,Rest,Architecture,在我的系统中,如果我得到一个端点api/businesss/1,那么关于企业的详细信息将以JSON的形式返回(地址、营业时间等)。如果在请求头中传递了访问令牌,则服务器可以识别发出请求的用户,并可以使用用户特定的数据(地址、营业时间,以及用户是否已将此业务添加为书签)补充返回的数据 我的问题是-应该从这样一个请求返回经过身份验证/未经身份验证的属性,还是应该将它们拆分为两个单独的请求?(/api/business/1用于地址和营业时间,api/user/123/bookmarks用于用户的书签业

在我的系统中,如果我得到一个端点
api/businesss/1
,那么关于企业的详细信息将以JSON的形式返回(地址、营业时间等)。如果在请求头中传递了访问令牌,则服务器可以识别发出请求的用户,并可以使用用户特定的数据(地址、营业时间,以及用户是否已将此业务添加为书签)补充返回的数据


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

在这种情况下,最好将其分为两个方法/api/business/1和

/api/business/1 api/user/123/bookmarks/ 原因如下:

  • 它使API更干净-每个API方法都能完成定义良好的工作
  • 测试API更容易,因为您将摆脱这里的状态(我所说的状态是指使用令牌获取用户)。因此,通过传递相同的业务/用户id,您可以期望始终得到相同的结果
  • 是的,你可以缓存它

谢谢,这对我来说也很有意义。 api/user/123/bookmarks/