В архитектурах RESTful каждая «вещь» должна иметь один идентификатор, который является URI, если вы используете HTTP, как я ожидаю.В вашем случае у каждого элемента должен быть ровно один URI.
Моя первая идея заключалась в том, чтобы поместить URL-адрес для общедоступных элементов, таких как / Root / Items, где будут находиться общедоступные элементы, и другого URL-адреса, например / Root/ Пользователь / Предметы, где будут жить личные предметы.
Я предполагаю, что вы говорите не только о ресурсах коллекции, которые будут возвращать коллекцию элементов.Я предполагаю, что у вас также будут отдельные ресурсы.URI одного элемента может быть / Root / Items / 42 или / Root / User / Items / 23 в вашей схеме.
Вы можете использовать различные схемы URI для открытых и закрытых элементов, если это поможет вам выполнитьавторизация нужна.Но в любом случае URI не имели значения в REST.URI должны всегда считаться непрозрачными.Если вы используете эти разные схемы для общедоступных и личных предметов, вы должны убедиться, что публичный предмет никогда не станет частным, и наоборот.В этом случае URI элемента изменится, и это будет так же, как если бы вы изменили первичный ключ строки в базе данных.Идентификаторы не должны меняться.То, что вы делаете, если вы используете разные схемы URI для открытых и закрытых элементов, - это кодирование уровня конфиденциальности ваших элементов в идентификаторы.Если ваш проблемный домен разрешает это, это нормально.
Элемент может быть связан с другим пользователем, поэтому у него будет разрешение на его обновление.Что-то вроде / Root / User / Operator / Items .... но потом я понимаю, что создаю слишком много адресов.
Это звучит так, как будто вы хотите изменить уровень конфиденциальности элемента.Как я уже говорил, у одного элемента должен быть ровно один URI, который никогда не меняется.Если вы говорите о ресурсах сбора, ваша схема может быть.Я не уверен, что вы имеете в виду здесь.
В конце: вам нужны аутентификация и авторизация.Вам нужно вернуть 403 Запрещено, если пользователь хочет получить доступ к личному элементу другого пользователя независимо от его URI.