REST API - определение. REST: перевод. Representational State Transfer

REST API (Representational State Transfer), ​​или веб-службы RESTful, — что это? REST в переводе c английского «репрезентативная передача состояния». Это способ обеспечения взаимодействия между компьютерными системами в Интернете. REST-совместимые веб-службы, позволяющие запрашивающим системам получать доступ к текстовым представлениям веб-ресурсов и управлять ими, используя единый и предопределенный набор операций. Существуют и другие формы веб-служб, которые содержат свои собственные произвольные наборы операций, например WSDL и SOAP.

REST API: что это? Определение понятия

Веб-ресурсы изначально были определены во Всемирной паутине как документы или файлы, идентифицированные их URL-адресами. Сегодня они имеют гораздо более общее и абстрактное определение, охватывающее каждый предмет или сущность, которые могут быть идентифицированы, названы, адресованы или обработаны в Сети. В веб-службе REST API запросы, отравленные в URI-ресурса, вызывают ответ, который может быть оформлен в XML, HTML, JSON или в каком-либо другом формате. Ответ может подтвердить, что некоторые изменения были внесены в хранимый ресурс, также предоставить гипертекстовые ссылки на другие связанные ресурсы и их коллекции. Использование HTTP как наиболее распространенного протокола относится к типам доступных операций, которые предопределены командами PUT, DELETE, HTTP GET, POST.


Используя протоколы без учета состояния и стандартные операции, системы REST нацелены на быструю производительность, надежность и способность к росту путем повторного использования компонентов, которыми можно управлять и которые можно обновлять, не затрагивая систему в целом. Использование REST часто предпочтительнее, чем более тяжелый стиль SOAP (Simple Object Access Protocol), поскольку REST не использует полосы пропускания, что делает его более подходящим для использования в Интернете. Для подхода SOAP требуется запись или использование предоставленной серверной программы (для обслуживания данных) и клиентской программы (для запроса данных).

rest api что это

История технологии

Термин «репрезентативная передача состояния» был введен и определен в 2000 году Роем Филдингом в его диссертации «Архитектурные стили и дизайн сетевых архитектур программного обеспечения». Он выработал архитектурный стиль REST параллельно с HTTP 1.1 1996-1999 годов, основанный на существующем проекте HTTP 1.0 1996 года. В ретроспективном взгляде на развитие технологии Филдинг сказал о том, что на протяжении процесса стандартизации HTTP он был призван защищать выбор дизайна в Интернете. Это очень сложная задача в рамках процесса, принимающего предложения от кого-либо по теме, которая быстро становится центром всей отрасли.


У Филдинга были комментарии от более чем 500 разработчиков, многие из которых отличные инженеры с многолетним опытом. Он должен был объяснить все, начиная с самых абстрактных понятий веб-взаимодействия и заканчивая точными деталями синтаксиса HTTP. Этот процесс оттачивал его модель до основного набора принципов, свойств и ограничений, которые теперь называются REST.

rest api авторизация

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

Особенности стиля REST влияют на следующие архитектурные свойства:

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

rest перевод


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

Формальные и архитектурные ограничения

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

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

representational state transfer

Безопасность

REST не предоставляет встроенной поддержки безопасности. Это очень важно при проектировании веб-сервисов REST - требования безопасности и проектирования выполняются заранее. Веб-сервисы REST используют HTTP GET, POST, PUT и DELETE из CRUD-операций. PUT и DELETE не поддерживаются многими браузерами и чаще всего отключены на уровне сервера из-за возможного нарушения конфиденциальности. Если он не настроен должным образом на уровне сервера и клиента, любой посторонний пользователь сможет создать ресурс с помощью PUT-метода или уничтожить используемый ресурс DELETE. При разработке требований безопасности для веб-сервисов следует учитывать данные моменты.

rest api примеры

Архитектурные элементы

Ключевым аспектом REST является характер и состояние его элементов данных. В стиле REST существует четыре понятия, описывающих поведение и состояние информации.

Ресурс — это объект (логический или физический), доступный в Интернете. Это может быть документ, хранящийся в файловой системе сервера или строка в таблице базы данных. Конечный пользователь взаимодействует с ресурсом для достижения определенной цели. Для проектирования системы с помощью REST разработчик должен думать о бизнес-объектах как ресурсах и о том, как они могут быть адресованы.

rest api java

URI - уникально идентифицирует ресурс. Этот параметр делает ресурс адресным и может быть изменен. Ресурсы изменяются с использованием протокола приложения - такого как HTTP.

Представление - это данные/метаданные состояния ресурса в момент времени. Клиент получает представление ресурса при запросе URI. Вид ресурса может быть закодирован в одном или нескольких передаваемых форматах, таких как XML, HTML, JSON, RSS, REST API java. Эти форматы могут быть согласованы при помощи механизма согласования контента.

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

Коннектор

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

rest api запросы

Клиент и сервер являются основными REST-коннекторами. Клиент инициирует запрос, а сервер его обрабатывает.

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

Компоненты

Компоненты выполняют набор четко определенных методов на ресурсе, создающем представление для захвата текущего или предполагаемого состояния.

User-Agent - использует клиентский соединитель для инициирования запроса.

Origin-сервер - использует серверный коннектор для ответа на запрос.

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

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

Перспективы развития

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

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

Спецификации API. Спецификация и классификация моторных масел по API
Спецификации API разрабатываются Американским институтом нефти. Первые спецификации моторного масла по API были опубликованы в 1924 году. Данный институт является неправительственной организацией национального масштаба в США.
далее
Что означает постпродакшн?
Кинематограф появился в жизни людей чуть более ста лет назад и почти мгновенно стал самым популярным видом культурного отдыха населения. За эти сто лет киноискусство прошло огромный путь: от простой записи на пленку театральных сцен до невообразимых ...
далее
SDK - определение. Описание и особенности
Программисты любят, когда их работа нравится пользователю. Но больше они любят, когда их работу продолжают непрофессионалы, добавляя к на первый взгляд законченному продукту часть своих задумок.
далее
Pinterest - определение. Социальная сеть Pinterest. Пинтерест русский
Многие онлайн-маркетологи считают, что американская соцсеть Pinterest станет одним из самых эффективных инструментов онлайн-продаж. Проект, по мнению экспертов, имеет в коммерческом аспекте ряд преимуществ перед существующими соцсетями.
далее
Ошибка Internal Server Error. Как решить проблему
Достаточно часто владельцы хостингов мучаются из-за постоянного возникновения сообщения об ошибке 500 (Internal Server Error). Она, как это называется, многим попросту отравляет жизнь. Сейчас мы попробуем кратко разобраться в сути самой ситуации и ...
далее
Практика применения функции json_decode
Информацию со стороны клиента удобно отправлять на сервер в формате JSON, поскольку передача GET и POST-способами при большом количестве данных создает заметные неудобства. Формат JSON используется повсеместно, и применение функции PHP json_decode востребовано на стороне сервера.
далее
Практика применения функции json_decode
Формат JSON: краткое описание, пример
Обмен информацией всегда представлял собой задачу первостепенной важности. Особенно актуальное значение имеет обмен данными между клиентом (браузер) и сервером. Компактность и эффективность, AJAX
далее
Формат JSON: краткое описание, пример
Репорт — это... Узнаем как расшифровывается термин? За что можно получить
Каждый начинающий игрок рано или поздно сталкивается с пугающим термином «репорт». Определение этому слову можно дать в нескольких вариантах, и любой из них окажется не менее актуальным,чем остальные. Игровое сообщество неустанно развивается, а незнание его составляющих может привести к неприятным ситуациям.
далее
Репорт — это... Узнаем как расшифровывается термин? За что можно получить
Информационные технологии: что это - RSS
Что такое RSS и как его использовать? Практические советы и инструкции по установке информационных каналов на блог или сайт. Как осуществить подписку на RSS-ленту и что для этого необходимо сделать? Это и многое другое читайте в представленной статье.
далее
Информационные технологии: что это - RSS
Киришский нефтеперерабатывающий завод КИНЕФ
Все время технологии совершенствуются и строятся новые заводы по переработке нефти. В данной статье пойдет речь об одном из них, а именно о нефтеперерабатывающем заводе в городе Кириши Ленинградской области.
далее
Киришский нефтеперерабатывающий завод КИНЕФ