Это трудно sintetize вопрос в одну строку, но я надеюсь, что смогу объяснить себя лучше здесь:Какая конечная точка должна представлять собой trhreeway отношения многие ко многим с несвязанными элементами, а также
Я получил следующую модель :
Пользователи
- ID
Сообщения
- ID
Метки
- ID
UsersMessagesCategories
- ID
- идентификатор пользователя
- MESSAGEID
- TagID
Tags
являются НЕ созданы user
, доступны tags
создаются через панель администратора.
Я хочу, чтобы конечная точка, которая возвращает имеющиесяtags
для message
, но с теми, которые уже связаны, к тому user
, к тому, что message
помечено.
Кажется, что я не могу найти стандартный способ для отдыха.
PS: Просто чтобы было ясно, я хочу:
{
tags:[
{id: 1, associated: false},
{id: 2, associated: true},
{id: 3, associated: false}
]
}
Или, может быть, путь:
{
tags:[
associated:[
{id: 2},
{id: 1}
],
unassociated: [
{id: 3}
]
]
}
Я также не знаю, если он должен быть возвращен (я думаю, это одна):
/users/1/messages/1/tags
или путем:
/tags
или даже:
messages/1/tags
Edit: Измененные конечные точки, так что URI построен с множественными именами.
Что такое * сообщение *? В чем разница между * сообщением * и * UsersMessagesCategories *? –
Typo, связь и сообщение точно такие же. Я изменил его, чтобы он был последовательным. – Astaroth
Во-первых, нет такой вещи, как restful-url IMO - это всего лишь URI. Далее, лучшие практики часто используют имена ресурсов во множественном числе. На ваш вопрос, может ли тег существовать без сообщения? Если это так, то он действителен для того, чтобы быть ресурсом верхнего уровня, если нет, то он должен быть под-ресурсом сообщений. BTW: Мне не нравится счетчик как идентификатор, как если бы вы перемещали элементы или вставляли новые между ними, к какому идентификатору ресурса: 2 указывает? Поэтому лучше использовать некоторые идентификаторы UUID в качестве идентификатора. –