Я разрабатываю web-api, который управляет объектами иерархии двух уровней: Group -> SubGroup.
- Группа добавляется только по своим именам, и это уникальный идентификатор группы
- Подгруппы добавляются только по их именам, а имя группы + имя подгруппы является уникальным идентификатором для подгруппы.
- Подгруппа может «жить» только в контексте ееparent (группа).
- И группа, и подгруппа имеют уникальные идентификаторы в системе (помимо имен).
У пользователя должна быть возможность получить определенные сведения о подгруппе.и я не уверен, должен ли я дать ему конечную точку, которая позволит ему получить к ней доступ напрямую.Я исследовал некоторые темы, но не получил хорошего ответа ( 1 , 2 , 3 )
У меня есть два варианта:
Опция 1:
создать конечную точку, которая позволяет пользователю получить доступ к подгруппе, только указав ее имя и имя родительской группы:
/ groups / subgroups? GroupName = "x" & subGroupName = "y"
Опция 2:
создать «прямой» доступконечная точка, которая позволяет пользователю получить доступ к подгруппе напрямую, без указания имени родительской группы, используя ее внутренний идентификатор (при создании подгруппы верните этот идентификатор), например:
/ subgroups? id = "52regfd235fdsf325f" (идентификаторподгруппа "у")
- Каков наилучший метод для этой ситуации?нормально ли добавлять конечную точку «прямого» доступа к вложенному ресурсу или этого следует избегать?например, что будет с конечной точкой удаления подгруппы?должен ли он быть идентифицирован по идентификатору подгруппы или по ее имени?
- В общем случае, когда мы имеем иерархии H1-> H2-> H3 -> ... Hn.Для того, чтобы попытаться получить доступ к последнему ресурсу в цепочке, каково здесь хорошее практическое правило?