Зарегистрируйтесь, чтобы продолжить обучение

Вложенные ресурсы JS: REST API (Fastify)

Вложенные ресурсы в REST API — это концепция, которая помогает отражать связи между различными сущностями. Когда один ресурс логически является частью другого, мы можем описывать их вложенность, чтобы лучше структурировать API и упростить работу с данными, в тех случаях, когда это разумно. Это особенно полезно в сценариях, когда ресурсы имеют отношения "один ко многим" или "многие ко многим".

Понимание вложенных ресурсов на примере курсов и уроков

Каждый курс может содержать несколько уроков, и эти уроки логически привязаны к конкретному курсу. Вместо того чтобы работать с уроками как с отдельными сущностями, мы можем определить их как вложенные ресурсы внутри курсов. Это поможет сделать API более интуитивно понятным и точным в описании взаимосвязей между сущностями.

Например, если нам нужно получить все уроки для конкретного курса, мы можем использовать URL, отражающий вложенность:

/courses/{id}/lessons

Здесь {id} — это уникальный идентификатор курса, для которого мы хотим получить список уроков. Этот подход ясно показывает, что уроки существуют только в контексте конкретного курса, и для работы с уроками нужно знать курс, к которому они относятся.

Пример операций с вложенными ресурсами

  • Получение всех уроков курса Если необходимо получить все уроки конкретного курса, запрос может выглядеть следующим образом:
GET /courses/{course_id}/lessons

Ответ будет содержать список уроков, принадлежащих этому курсу:


Самостоятельная работа

  1. Сделайте ресурсы уроков вложенными в курсы, как описано в уроке
  2. Запушьте изменения в репозиторий

Для полного доступа к курсу нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff