REST API Design - лучшие практики для частных полей ресурсов - PullRequest
0 голосов
/ 09 ноября 2019

A 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.) что-тоеще.

Спасибо!

...