В двух из трех вакансиях для фронтеда требуют знания REST / RESTful API. Разберемся что это и в чем разница.
Что такое REST
REST (Representational state transfer) — общие принципы организации взаимодействия приложения/сайта с сервером по HTTP
. Сервер не запоминает состояние пользователя между запросами. В запросах передаётся информация, идентифицирующая пользователя (например токен) и параметры для выполнения операции.
Разница между REST и RESTful
REST — архитектурный стиль, а RESTful это сервис который следует этому стилю. Т.е если у вас на сервере REST API, а на клиенте вы делаете запросы к этому API, то у вас RESTful приложение/сайт.
Как это работает
Взаимодействие с сервером сводится к 4 операциям (4 — необходимый и достаточный минимум):
- Получение данных (
JSON
илиXML
) - Добавление новых данных
- Модификация данных
- Удаление данных
Получение данных не меняет состояния сервера. Каждый тип операции пользуется своим HTTP методом:
- GET — Получение
- POST — Добавление
- PUT — Модификация
- DELETE — Удаление
Пример REST API
В качества примера возьмем стандартное API для списка пользователей. Мы запрашиваем список пользователей, получаем информацию о пользователе, добавляем нового пользователя, изменяем информацию и удаляем пользователя. Если у нас на сервере REST API, то нам понадобятся следующие запросы:
- GET
/api/users
— получить список пользователей - GET
/api/users/7
— получить информацию о пользователе сID=7
- POST
/api/users
— добавить нового пользователя - PUT
/api/users/7
— изменить информацию о пользователе сID=7
- DELETE
/api/users/7
— удалить пользователя сID=7
Зачем это фронтенд разработчику
В работе это умение делать AJAX запросы и обрабатывать полученную информацию. Понимание принципов — дополнительный бонус, который позволяет догадаться какой метод использовать. Ну или подсказать серверному разработчику.