REST — это не протокол, не фреймворк и даже не библиотека. Многие новички путают понятия, но на деле это просто архитектурный стиль. Набор конкретных договоренностей о том, как мы управляем системой и пишем эндпоинты.
Когда вы строите Web API между двумя сервисами, можно вообще забить на стандарты и называть ручки как угодно:
/get_customer_info_by_id или /proceed_order_for_current_customer. В таком случае ваш API превращается в обычный набор удаленных функций. REST же переносит нас в парадигму манипуляции ресурсами.Ресурс как центр вселенной
В REST мы работаем с сущностями. Если у нас есть «юзеры», то доступ к ним всегда идет через один URI —
/users. Мы не создаем под каждую операцию новый адрес. Вместо этого мы используем нативные методы HTTP, чтобы объяснить серверу свои намерения:-
GET /users — хотим получить данные.-
POST /users — хотим сохранить нового.-
DELETE /users — хотим удалить.URI остается неизменным, меняется только метод. Система становится логичной и предсказуемой: если вам нужен продукт, вы идете на
/products с методом GET. Управление состоянием через представление
Второй столб REST звучит сложно, но работает элементарно. Мы меняем данные на сервере, отправляя ему «желаемый результат».
Когда вы правите имя профиля в интерфейсе, фронтенд не шлет команду «смени букву А на Б». Он отправляет серверу весь объект (представление) в том виде, в котором он должен существовать в финале.
Сервер получает это состояние, прогоняет через бизнес-логику и решает: достаточно ли у него оснований, чтобы превратить текущую запись в базе в то, что прислал клиент. Это делает взаимодействие прозрачным — мы оперируем объектами, а не набором разрозненных команд.
Предсказуемость как стандарт
Главная цель этого подхода — сделать систему понятной для любого внешнего разработчика. Когда API следует REST-принципам, инженеру не нужно гадать, как достучаться до данных. Логика взаимодействия с ресурсом уже заложена в саму структуру запроса.
Чтобы по-настоящему разобраться в теме REST, стоит копнуть в первоисточники. Я изучил оригинал диссертации Роя Филдинга (автора REST), чтобы отсеять трудности перевода и неверные трактовки, которыми забит интернет. Результат упаковал в подробное видео. Если уже понимаете базу API — самое время углубиться в архитектуру. 👌
Ставь 🔥, если проектируешь ручки как ресурсы, а не как глаголы. А если остались вопросы по реализации или что-то звучит слишком абстрактно — пиши в комменты, обязательно разберем!
10МДК | ВЕБМастер
