О REST API простыми словами

Вы здесь

Опубликовано: 17 августа, 2023 - 11:56
Автор: 
Андрей Иванов
Время чтения: 8мин.

REST API — два часто встречающихся акронима (сокращение с английского), которые расшифровываются как: Representational State Transfer и Application programming interface. Итак, REST — это архитектурный стиль взаимодействия элементов распределенной системы. Так называется стиль взаимодействия между отдельными частями системы, которые не обязательно должны быть расположены в одном месте. Другими словами, это специальный стиль, обладающий набором ограничений, которые должны учитываться на этапах проектирования системы.

Из истории

По своей сути концепция REST лежит в основе интернета, однако сам термин был введен только в 2000 году Роем Филдингом, который также отметился участием в создании протокола HTTP.

Филдинг написал диссертацию на тему сетевых архитектур, где он подвел теорию под специальный тип клиент-серверного взаимодействия. Дополнительно им была описана концепция создания приложений, в которых каждый клиентский запрос уже содержит в себе информацию о желанном ответе, а сервер, получивший запрос, не сохраняет данные о состоянии клиента.

Основные понятия REST API

Каждое приведенное ниже понятие очень важно для использования REST API:

  • JSON — удобный формат данных, который выглядит как объект в JavaScript.
  • HTTP-клиент — инструмент, являющийся основой взаимодействия с REST API.
  • Маршрут — имя, отсылающее работу API к определенному эндпоинту.
  • Эндпоинт (конечная точка) — само обращение к маршруту отдельным HTTP-методом.
  • Пространство имен — нужно для того, чтобы сделать название маршрута уникальным.
  • CRUD — короткое название всех видов операций маршрута: читать, создавать, обновлять и удалять что-то.
  • Ресурсы — к ним относятся посты, страницы, комментарии, юзеры.
  • Путь к ресурсу — имя ресурса в маршруте.
  • Запрос — данные, указанные в нем, определяют ответ, который будет получен.
  • Ответ — данные, которые будут получены из API в ответ на запрос.
  • HTTP-методы — определяют тип действия, которое клиент хочет сделать с ресурсом.
  • Схема — полное описание маршрута, которое предоставляет о нем полную информацию.
  • Обнаружение — процесс выяснения любых деталей об использовании REST API.
  • Контроллер — PHP-класс, которые объединяют разные части REST API в единый механизм.
  • CURIE — компактный URL.

Как работает REST API?

REST API работает по такому же принципу, как и интернет. Клиент связывается с сервером при помощи API, когда ему нужен какой-либо ресурс. Выглядит это следующим образом:

  • Клиент отправляет запрос на сервер.
  • Сервер аутентифицирует клиента и подтверждает его право на запрос.
  • Сервер выполняет обработку созданного запроса.
  • Сервер дает ответ клиенту — был ли запрос успешным; сведения, запрошенные клиентом.

Как используют REST API и где применяется?

REST API используется везде, где пользователю сайта или приложения нужно предоставить данные с сервера. Например, после нажатия иконки с видео на видеохостинге REST API выполняет операции и запускает сам ролик с сервера.

REST API используется в следующих случаях:

  • соединение с сервером отличается ограниченной пропускной способностью;
  • нужно кэшировать запросы;
  • предполагается, что приложение или сайт будет значительно масштабироваться;
  • приложение или сайт использует метод фонового обмена данными с сервером (AJAX).

Например, REST API работает в социальной сети Twitter, что доказывает его распространенность и популярность.

Принципы структуры REST API

Архитектура REST API имеет несколько особенностей:

  • клиент-серверная модель архитектуры;
  • stateless-сервер;
  • кэширование;
  • многослойная структура;
  • единый интерфейс;
  • код по требованию.

Рассмотрим каждый элемент подробнее.

Client-Server (Клиент-серверная модель архитектуры)

Это требование полностью отделяет друг от друга два понятия: клиент и сервер.

  • Клиент — это программа, запрашивающая у сервера доступ к ресурсам при помощи API.
  • Сервер — это программа, в которой хранятся и обрабатываются ресурсы. Он может быть на одном или нескольких компьютерах.

Создается структура, при помощи которой клиент делает на сервер запрос, а в ответ получает необходимые ресурсы. Это ускоряет и упрощает работу системы. Представить работу этого принципа REST API можно на примере сервиса для учета деловых переписок. Местом хранения переписок выступает сервер, но доступ к ним можно получить при помощи мобильного приложения. При этом само приложение не будет хранить никаких данных — оно используется только для отправки запросов на сервер, получения ответов и их отображения на экране смартфона.

Stateless (Отсутствие состояния)

Очень важный принцип работы REST API. На сервере нет никаких данных о прошлых взаимодействиях с клиентом. В каждом запросе должна содержаться вся информация для его обработки.

Например, вы запросили последнее сообщение из переписки с компанией. Запрос составлен корректно, в нем содержится вся необходимая серверу информация. Если вы захотите получить предпоследнее сообщение, то нужно заново составлять полный запрос. Подобный принцип работы REST API позволяет значительно снизить нагрузку на сервер, что особенно актуально при одновременном подключении к нему нескольких клиентов.

Cashable (Кэширование)

Нередко клиент запрашивает с сервера одни и те же данные по несколько раз. Если каждый раз сервер будет заново собирать новые данные, то это существенно увеличит нагрузку на систему. Именно такой принцип работы REST API, как кэширование, позволяет решить эту проблему: часть данных сохраняется у клиента или на промежуточных серверах. Это позволяет значительно увеличить производительность системы.

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

Uniform Interface (Единообразие интерфейса)

Должен быть создан единый способ обращения к каждому ресурсу. И при каждом добавлении новой функции в сервис логика интерфейса должна быть такой же.

Файлы передаются клиенту не в том виде, в котором сохраняются на сервере. Сначала они преобразуются в JSON или XML, потом выполняется их отправка клиенту. Ответ на запросы к новому ресурсу должен приходить в том же формате, что и к старому, а также содержать дополнительную информацию.

Layered System (Слоистая архитектура)

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

Прокси-серверы могут использоваться для кэширования, обеспечения безопасности, дополнительной обработки данных.

Code on Done (Код по требованию)

Необязательный элемент структуры, позволяющий получать программный код для дальнейшего исполнения на стороне клиента. Работа данного принципа REST API позволяет передавать целые сценарии — например, динамические элементы пользовательского интерфейса, выполненные на JavaScript.

Методы REST API

В REST API есть 4 метода HTTP, которые применяются для работы с объектами, созданными на серверах:

  • GET — получение информации о данных или списка объектов;
  • DELETE — удаление данных;
  • POST — добавление или замена данных;
  • PUT — регулярное обновление данных.

Это основы REST API в сфере работы с данными.

Уровни зрелости REST

Леонард Ричардсон разработал модель, которая разделяет элементы REST-подхода на 3 основных уровня и один начальный.

Уровень 0

Сервис имеет единственный URL, использующий единственный HTTP-метод (например, POST).

Уровень 1

Он называется «Resources» (Ресурсы). Подобные сервисы используют несколько URL, но единственный HTTP-метод. Разница между «уровнем 0» и «уровнем 1» заключается в том, что первый объединяет все взаимодействия через один большой и сложный ресурс, а второй выставляет много логических ресурсов.

Уровень 2

Называется «HTTP-verbs» (http-глаголы). Сервисы такого уровня имеют много ресурсов и используют несколько HTTP-методов для каждого ресурса (GET, HEAD, POST, PUT, DELETE, TRACE, CONECT).

Уровень 3

Носит название «Hypermedia controls» (Элементы управления гипермедиа). Смысл подобных сервисов заключается в том, что при вызове сервиса они возвращают не только состояние, но и ссылки на то, что можно дальше делать с этим сервисом. Пользователь получает возможность выбирать дальнейшие действия из доступного списка.

RESTful — что это?

RESTful можно называть любую сеть, которая отвечает ограничениям Филдинга — ученого, который впервые применил термин REST в 2000 году. Подобная система должна быть достаточно гибкой для разных сценариев использования, а также масштабируемой для размещения большого количества компонентов и пользователей. Также RESTful должна иметь возможности адаптироваться с течением определенного времени.

Преимущества REST API

Система, соблюдающая все требования РЕСТ АПИ, будет обладать целым рядом преимуществ. В их числе:

  • надежность — не придется сохранять всю информацию о клиенте;
  • высокая производительность — благодаря грамотному кэшированию;
  • хорошая масштабируемость;
  • возможность простого изменения;
  • портативность отдельных элементов;
  • простой интерфейс;
  • прозрачное взаимодействие;
  • наличие возможностей, необходимых, чтобы приспособить систему к новым требованиям.

Если говорить простыми словами, то REST API — это набор правил (всего их 6), соблюдение которых дает возможность правильно организовать написание серверного кода приложения, чтобы все системы обменивались данными, были легко масштабируемыми и производительными.

 

Оцените статью: 

Оставить комментарий

Комментарий будет опубликован после прохождения модерации. Обычно это занимает несколько минут.

Читайте также

Мы поможем
подобрать решение

Оставьте свой номер телефона и наш консультант расскажет вам об эффективных инструментах для решения задач вашего бизнеса. Вы можете бесплатно воспользоваться любой услугой в течение пробного периода.

© Смарт Офис
8 800 777 8170
sales@smoff.ru
Карта сайта

Продвижение сайта: 5 o'click
Сервис звонка с сайта RedConnect