8 800 777 8170
Работаем по всей России

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

Вы здесь

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

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

Из истории

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

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

Структура REST API

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

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

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

Архитектура «клиент-сервер»

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

Stateless-сервер

Состояние клиента не хранится на сервере — это ложится на самого клиента. Благодаря этому упрощается доработка и сопровождение сервера, что делает его максимально стабильным.

Кэшируемость

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

Многослойная структура

Со стороны клиента должно быть совершенно незаметно:

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

Единый интерфейс

Реализация приложения полностью отделена от сервиса. Пользователь знает, как взаимодействовать с приложением, и не имеет значения, как именно. Изменение приложения не приводит к изменению интерфейса, потому клиентам не приходится перестраиваться.

Ключ по требованию

Опциональный элемент структуры, позволяющий получать программный код для дальнейшего исполнения на стороне клиента.

Требования к структуре

Основные принципы REST API заключаются в обмене данными через запросы и ответы, однако соответствие только этой норме считается недостаточным условием для того, чтобы приложение считалось REST. Для этого система должна соответствовать шести требованиям, которые напрямую перекликаются с описанными выше элементами структуры.

Клиент-серверная модель

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

Разграничение на «клиента» и «сервер» дает возможность развиваться частям единой системы независимо.

Отсутствие состояния

Описываемая архитектура предполагает, что между отдельными запросами на сервере не будут сохраняться сведения о клиентском состоянии. Таким образом, клиентские запросы должны составляться так, чтобы сервер получал только те данные, которые действительно необходимы для обработки/выполнения запроса.

При соответствии данному требованию клиентская и серверная части смогут «понимать» друг друга без опоры на полученные ранее друг о друге сведения.

Кэширование

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

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

Единообразие интерфейса

Еще одним обязательным требованием к системе REST является унифицированный тип интерфейса. В приложении клиент должен понимать, на какой адрес и в каком формате должен быть отправлен запрос, а сервер — в каком формате требуется составлять ответы.

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

Слои

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

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

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

Код по требованию

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

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

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

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

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

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

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

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

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

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

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

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

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