У меня есть простое Java-приложение с тремя сущностями:
User
Rent
Tool
Пользователь может арендовать несколько инструментов, а инструмент может быть арендован несколькими пользователями.Сущность Rent существует для отслеживания истории аренды, поэтому она имеет много-к-одному отношения как с Пользователем, так и с Tool.
На данный момент у меня есть два контроллера покоя: UserController ToolController, которые отвечают за обслуживание пользователей или инструментов.
Проблема в том, что теперь я хочу вернуть историю аренды для конкретного пользователя.Должен ли я создать метод в UserController с отображением, например
/users/{id}/rents
, или лучше создать отдельный контроллер, например RentController, и метод с отображением, например
/rents?userId={userId}
Я думаю, что первый подход чище вусловия URI, но я должен использовать RentService в UserController и потому что это классы из разных пакетов (я использую пакетный подход), я чувствую, что что-то не так.Проблема также в таких методах, как POST или PUT, где я думаю, что лучшим вариантом будет что-то вроде этого:
POST /rents - RentDto as body
PUT /rents/{id} - RentDto as body
или, возможно, вполне нормально иметь метод:
GET /users/{id}/rents
в RentController, а не в UserController?Как вы решаете такие проблемы и что бы вы предложили?