cot_shaurma
@cot_shaurma
Java и всего понемногу

Как правильней сделать контроллеры с точки зрения REST?

У меня есть сущности Student (студент) и Tutor (преподаватель).
Есть два контроллера соответственно: StudentController и TutorController.

Есть задача. Надо сделать эндпоинт, который будет возвращать студентов, привязанных к конкретному преподавателю. Эндпоинт должен выглядеть вот так: /tutors/{id}/students, потому что в данном случае преподаватель является главным ресурсом.

В каком из контроллеров будет логичней разместить данный эндпоинт?

Плюсы при размещении в StudentController:
  1. Это логичней, т.к. запрос относится именно к студентам
  2. Не придётся дублировать StudentService в TutorController
  3. Упростит поддержку кода, так как всё, что касается студентов - у студентов


2. Плюсы при размещении в TutorController:
  1. Вроде бы логичней с точки зрения REST
  2. Код будет чище (потому что в StudentController по умолчанию путь начинается с /students)


Где следует разместить эндпоинт?
  • Вопрос задан
  • 196 просмотров
Пригласить эксперта
Ответы на вопрос 2
@nApoBo3
Метод возвращает студентов, значит в контроллере студентов его и располагать. Завтра вам нужно будет получать студентов по номеру аудитории, по успеваемости и т.д., вы же не будете для этого делать отдельные контроллеры.
Возможно вам потребуется разделить сервис на два, тогда у вас сервис преподавателей получит лишнюю связь с сервисом студентов.
Ответ написан
New_Horizons
@New_Horizons
Бред:
Третьего не дано?) Ещё один контроллер?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы