При работе со сложными вложенными маршрутами должен ли я проверять родительские идентификаторы?

#api #rest #api-design

#API #rest #api-дизайн

Вопрос:

Я думаю, что мой первоначальный вопрос слишком далеко отошел от темы моего очень конкретного вопроса. Итак, я удаляю его и обновляю этим.

Наш внутренний api на данный момент содержит несколько очень вложенных ресурсов. Например:

 /master-schedules/{id}/courses/{id}/sections/{id}/rooms
  

Чтобы ПОЛУЧИТЬ комнату в качестве примера, все, что мне нужно, это {id} комнаты, и я мог бы (если бы конечная точка существовала) просто ПОЛУЧИТЬ /rooms /{id} . Вместо этого я выполняю ПЕРЕХОД к /master-schedules/{id}/courses /{id}/sections / {id} / rooms.

Просматривая код, серверная часть выполняет 3 вызова базы данных, чтобы подтвердить, что основное расписание существует, затем курс существует, затем раздел существует. На самом деле, все, что нам нужно знать, это то, что раздел существует, потому что если он существует, то должны существовать и другие.

Должны ли мы выполнять все эти вызовы базы данных для проверки родительских ресурсов?На самом деле меня беспокоит не производительность базы данных и т.д., А скорее количество шаблонного кода, написанного для каждой конечной точки. Может быть, у нас просто не должно быть таких вложенных ресурсов?