Я разрабатываю REST API сервиса и застрял на правильном способе вложения ресурсов.
Ресурсы: партнеры, тикеты, настройки
Связи между ресурсами:
- у партнера много билетов,
- партнер имеет набор настроек,
Деловая логика:
- Вы можете перечислить всех партнеров в качестве анонимного пользователя,
- Вы можете добавить новый билет для указанного партнера в качестве анонимного пользователя,
- только партнер может перечислить свои билеты,
- только партнер может изменить свои билеты,
- только партнер может перечислить настройки,
- только партнер может изменять настройки,
Что я делал до сих пор:
Партнерские ресурсы
GET / partners - список всех партнеров
GET / partners /: id - показать детали партнера, указанного: параметром id
GET / partners /: partner_id / tickets - список билетов
партнера GET / partners /: partner_id / tickets /: id - подробности указанного билета
партнера POST / partners /: partner_id / tickets - сохраняет новый билет
PUT / partners /: partner_id / tickets /: id - обновляет билет, указанный в параметре: идентификатор
GET / partners /: partner_id / settings - список настроек партнера
PUT / partners /: partner_id / settings - обновить настройки партнера
Проблема / Вопрос
Будет ли правильным способом разделять вложенные ресурсы (тикеты, настройки) на отдельные ресурсы или дублировать их как отдельные ресурсы?
Например
GET / tickets /: ID
POST / Билеты
PUT / Билеты /: ID
GET / настройки
PUT / настройки