Какова лучшая схема URI для REST API с анонимным / идентифицированным доступом? - PullRequest
1 голос
/ 18 октября 2011

Я создаю API для доступа к пользователям и объектам, принадлежащим этим пользователям.Доступ к объектам может осуществляться анонимно, автором или каким-либо модератором / супервизором.

Во всех трех случаях набор полей может быть разным (или может быть одинаковым - он еще не известен);по крайней мере, он отличается для анонимных и идентифицированных авторизованных режимов.

Предположим, у нас есть пользователь 456, и этот пользователь владеет объектом 123.

Основной вопрос: Какова лучшая схема URI для этого случая и каковы плюсы и минусы каждого из них:

Вторичный вопрос: Являются ли эти ресурсы одинаковыми или это разные ресурсы для одного и того же объекта??

  1. Один и тот же URI для всех объектов с выходными данными, зависящими от отсутствия или наличия идентификатора:

    /objects.json?criteria=xyz&user=456  -- result depends on identity & "user"
    /objects/123.json                    -- result depends on identity
    /users/456.json
    
  2. Различные URI для анонимногои идентифицировал доступ, как если бы это были разные ресурсы:

    /objects.json?criteria=xyz           -- anonymous only
    /objects/123.json                    -- anonymous only
    /users/456.json
    /users/456/objects.json              -- identified only
    /users/456/objects/123.json          -- identified only
    
  3. Что-то еще?

UPD: Простоизобретено:

/objects/123                         -- basic info, same for anonymous&identified
/objects/123/extra                   -- different kinds of extra info,
/objects/123/extended                -- ... or extended representations,
/objects/123/meta                    -- ... only for authorized roles for each.

/objects?criteria=xyz                -- common search for objects
/users/456/objects                   -- objects owned by user only

И в открытых списках и списках пользователей есть URI дополнительных ресурсов (списки являются точками входа), в зависимости от того, какой список используется.

При таком подходе мыиметь URI, указывающие на ресурсы, которые не меняются в зависимостив личность запрашивающего пользователя.Но мы по-прежнему контролируем, какие части информации мы предоставляем или не предоставляем запрашивающему пользователю.И URI не дублируются каким-либо образом или способом.Отлично!

1 Ответ

0 голосов
/ 20 ноября 2011

Предполагая, что на вопрос дан ответ в UPD выше.Этот псевдо-ответ должен закрыть вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...