Вложенные ресурсы в REST API — это концепция, которая помогает отражать связи между различными сущностями. Когда один ресурс логически является частью другого, мы можем описывать их вложенность, чтобы лучше структурировать API и упростить работу с данными, в тех случаях, когда это разумно. Это особенно полезно в сценариях, когда ресурсы имеют отношения "один ко многим" или "многие ко многим".
Понимание вложенных ресурсов на примере курсов и уроков
Каждый курс может содержать несколько уроков, и эти уроки логически привязаны к конкретному курсу. Вместо того чтобы работать с уроками как с отдельными сущностями, мы можем определить их как вложенные ресурсы внутри курсов. Это поможет сделать API более интуитивно понятным и точным в описании взаимосвязей между сущностями.
Например, если нам нужно получить все уроки для конкретного курса, мы можем использовать URL, отражающий вложенность:
/courses/{id}/lessons
Здесь {id}
— это уникальный идентификатор курса, для которого мы хотим получить список уроков. Этот подход ясно показывает, что уроки существуют только в контексте конкретного курса, и для работы с уроками нужно знать курс, к которому они относятся.
Пример операций с вложенными ресурсами
- Получение всех уроков курса Если необходимо получить все уроки конкретного курса, запрос может выглядеть следующим образом:
GET /courses/{course_id}/lessons
Ответ будет содержать список уроков, принадлежащих этому курсу:
Самостоятельная работа
- Сделайте ресурсы уроков вложенными в курсы, как описано в уроке
- Запушьте изменения в репозиторий
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.