/ 

RESTful API для фронтенд разработчика

В двух из трех вакансиях для фронтеда требуют знания REST / RESTful API. Разберемся что это и в чем разница.

Что такое REST

REST (Representational state transfer) — общие принципы организации взаимодействия приложения/сайта с сервером по HTTP. Сервер не запоминает состояние пользователя между запросами. В запросах передаётся информация, идентифицирующая пользователя (например токен) и параметры для выполнения операции.

Разница между REST и RESTful

REST — архитектурный стиль, а RESTful это сервис который следует этому стилю. Т.е если у вас на сервере REST API, а на клиенте вы делаете запросы к этому API, то у вас RESTful приложение/сайт.

Как это работает

Взаимодействие с сервером сводится к 4 операциям (4 — необходимый и достаточный минимум):

  1. Получение данных (JSON или XML)
  2. Добавление новых данных
  3. Модификация данных
  4. Удаление данных

Получение данных не меняет состояния сервера. Каждый тип операции пользуется своим HTTP методом:

  1. GET — Получение
  2. POST — Добавление
  3. PUT — Модификация
  4. DELETE — Удаление

Пример REST API

В качества примера возьмем стандартное API для списка пользователей. Мы запрашиваем список пользователей, получаем информацию о пользователе, добавляем нового пользователя, изменяем информацию и удаляем пользователя. Если у нас на сервере REST API, то нам понадобятся следующие запросы:

  1. GET /api/users — получить список пользователей
  2. GET /api/users/7 — получить информацию о пользователе с ID=7
  3. POST /api/users — добавить нового пользователя
  4. PUT /api/users/7 — изменить информацию о пользователе с ID=7
  5. DELETE /api/users/7 — удалить пользователя с ID=7

Зачем это фронтенд разработчику

В работе это умение делать AJAX запросы и обрабатывать полученную информацию. Понимание принципов — дополнительный бонус, который позволяет догадаться какой метод использовать. Ну или подсказать серверному разработчику.

⌘ ⌘ ⌘
Код. Плейсхолдер для [contenteditable]
Фронтенд

Код. Плейсхолдер для [contenteditable]

Placeholder полифил для contenteditable элемента

Как называть переменные
Фронтенд

Как называть переменные

Мой взгляд на соглашения наименования переменных, функций, методов и классов

Плавный, нативный скрол
Фронтенд

Плавный, нативный скрол

Выкиньте лишние библиотеки для прокрутки внутри страницы