Перейти к содержанию

Начало урока

Проектирование RESTful API

Превращаем данные в понятный и предсказуемый набор URL и методов

Главная идея: REST API — это стиль проектирования HTTP-сервисов. Вместо того чтобы придумывать по имени функции на каждое действие, вы моделируете данные как ресурсы (существительные), даёте каждому ресурсу устойчивый URL и используете стандартные HTTP-методы (GET, POST, PUT, PATCH, DELETE) для действий над ними. В итоге получается интерфейс, который любой разработчик может предугадать, не читая руководства.
К концу занятия вы сможете:
  • моделировать данные как ресурсы и проектировать их URL,
  • сопоставлять HTTP-методы с созданием/чтением/обновлением/удалением и знать, какие из них безопасны или идемпотентны,
  • возвращать правильные коды состояния при успехе и ошибке,
  • объяснить, почему REST не хранит состояние, и проектировать с учётом этого.

1. Ресурсы: моделируем существительные, а не действия

Сердце REST — это ресурс: сущность, о которой знает ваша система, например задача, пользователь или заказ. Ресурс — это существительное. Ошибка новичков в том, что они проектируют вокруг глаголов — /createTask, /getTask, /deleteTask — а значит, каждое новое действие требует нового URL, и клиент вынужден их все запоминать.

В REST всё наоборот. Вы предоставляете один URL на ресурс и позволяете HTTP-методу описывать действие:

  • коллекция живёт по пути во множественном числе: /tasks
  • отдельный элемент — под ней по идентификатору: /tasks/42

Аналогия. Представьте картотечный шкаф. /tasks — это ящик с надписью «Задачи»; /tasks/42 — одна папка внутри него. Вы никогда не подпишете ящик «открыть ящик задач» — ящик это существительное, а открыть, добавить или убрать папки — это отдельные действия, которые вы выполняете над ним. HTTP-методы и есть эти действия.

Продолжите этот урок на YourAIZone

В полном уроке — объяснение целиком, разобранные примеры, частые ошибки, тесты с мгновенной проверкой и ИИ-репетитор. Начните сразу как гость или создайте аккаунт, чтобы сохранять прогресс.

В полном уроке

  • Объяснение целиком
  • Разобранные примеры
  • Частые ошибки и как их избежать
  • Тестовые вопросы: 15
  • ИИ-репетитор, который отвечает на вопросы по теме
  • Отслеживание прогресса для ученика, родителей и учителя