Технически, REST не должен иметь состояния, поэтому более «правильная» реализация была бы первой, как вы перечислили.
Однако я бы поступил немного иначе, чем вы предлагаете для первого метода -Будет ли информация, возвращаемая пользователем о конкретном виджете, изменяться в зависимости от пользователя?Если нет, вы можете попробовать это:
http://server.com/users/3/widgets/ (Returns all widgets for user id 3)
http://server.com/widgets/13 (Returns widget id 13)
Получает лучшее из обоих миров.Правильная реализация "REST-ful", но когда речь идет о конкретных виджетах, текущий пользователь не имеет значения.Таким образом, ваши клиенты также могут легче передавать запросы по отдельным виджетам - без необходимости самим обновлять запрос.Если у клиента не должно быть доступа к этому конкретному виджету, от него не составит труда защититься с помощью уже проведенной вами аутентификации.
Я также основываю все это на предположении, что список виджетов может отличаться от клиента к клиенту - если это не так, и все клиенты будут видеть один и тот же список виджетов, независимо от причины.передать пользователя, так что идите вторым путем.