REST API设计-私有资源字段的最佳做法

时间:2019-11-09 09:34:04

标签: rest api authentication get endpoint

对于选择将个人资料设为私人的用户,GET用户响应可能类似于:

用户本身,当授权时:

{
    "id": 123,
    "uuid": abcdef-12345,
    "username":"myUserName",
    "email":"name.surname@some-url.com",
    "private_email_flag": true
}

对于未经授权的用户

{
    "uuid": abcdef-12345,
    "username":"myUserName"
}

因为email字段是私有的,并且private_email_flag之类的选项也应该是私有的。

公开此数据的最佳实践是什么?

  1. 只有一个端点,对于未授权的请求,仅返回公共字段,对于已授权的请求,仅返回所有字段。
  2. 使用两个不同的端点,例如:
    • /users/abcdef-12345-私人-仅可用于授权请求
    • /user-profiles/abcdef-123465-公开-任何人都可以访问 或者,考虑使用更深层次的资源,例如用户的文章:
    • /users/abcdef-12345/articles/ghijk-67890-私人-仅可用于授权请求
    • /articles/ghijk-67890-公开-任何人都可以访问

或者也许(3.)其他。

谢谢!

0 个答案:

没有答案
相关问题