Jump to content

ОТДЫХ

REST ( передача репрезентативного состояния ) — это архитектурный стиль программного обеспечения , созданный для управления проектированием и разработкой архитектуры Всемирной паутины . REST определяет набор ограничений того, как должна вести себя архитектура распределенной Интернета системы масштаба гипермедийной , такой как Интернет. Архитектурный стиль REST подчеркивает унифицированные интерфейсы , независимое развертывание компонентов , масштабируемость взаимодействия между ними и создание многоуровневой архитектуры для содействия кэшированию с целью уменьшения воспринимаемой пользователем задержки , обеспечения безопасности и инкапсуляции устаревших систем . [1]

REST используется во всей индустрии программного обеспечения для создания без сохранения состояния надежных веб-приложений . Приложение, которое придерживается архитектурных ограничений REST, может быть неофициально описано как RESTful , хотя этот термин чаще ассоциируется с разработкой HTTP на основе API-интерфейсов и тем, что широко считается лучшими практиками в отношении «глаголов» ( методов HTTP ), ресурс на которые отвечает . хотя он имеет мало общего с REST в его первоначальной формулировке и часто даже противоречит этой концепции. [2]

Термин «передача репрезентативного состояния» был введен и определен в 2000 году ученым-компьютерщиком Роем Филдингом в его докторской диссертации. Это означает, что сервер ответит представлением ресурса (сегодня это чаще всего будет документ HTML , XML или JSON ), и этот ресурс будет содержать гипермедийные ссылки, по которым можно перейти, чтобы изменить состояние системы. Любой такой запрос, в свою очередь, получит представление ресурса и так далее.

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

Рой Филдинг выступает на OSCON 2008

Сеть начала войти в повседневное использование в 1993–1994 годах, когда веб-сайты для общего пользования . стали доступны [3] В то время существовало лишь фрагментарное описание архитектуры Интернета, и в отрасли было давление с целью согласовать некий стандарт для протоколов веб-интерфейса. Например, к протоколу связи (HTTP) было добавлено несколько экспериментальных расширений для поддержки прокси-серверов , и предлагалось еще больше расширений, но существовала потребность в формальной веб-архитектуре, с помощью которой можно было бы оценить влияние этих изменений. [4]

W3C HTTP и IETF Рабочие группы основных стандартов Интернета: URI , HTML и вместе начали работу над созданием формальных описаний трех . Рой Филдинг участвовал в создании этих стандартов (в частности, HTTP 1.0 и 1.1 и URI), и в течение следующих шести лет он создал архитектурный стиль REST, проверяя его ограничения на стандарты протоколов Интернета и используя его как средство определения архитектурные улучшения — и выявлять архитектурные несоответствия. Филдинг определил REST в своей докторской диссертации 2000 года «Архитектурные стили и проектирование сетевых программных архитектур». [1] [5] в Калифорнийском университете в Ирвайне .

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

По своей природе архитектурные стили не зависят от какой-либо конкретной реализации, и хотя REST был создан как часть разработки веб-стандартов, реализация Интернета не подчиняется всем ограничениям архитектурного стиля REST. Несоответствия могут возникать из-за незнания или недосмотра, но существование архитектурного стиля REST означает, что их можно выявить до того, как они станут стандартизированными. Например, Филдинг определил встраивание информации о сеансе в URI как нарушение ограничений REST, которое может негативно повлиять на общее кэширование и масштабируемость сервера. Файлы cookie HTTP также нарушают ограничения REST, поскольку они могут рассинхронизироваться с состоянием приложения браузера, что делает их ненадежными; они также содержат непрозрачные данные, которые могут представлять угрозу конфиденциальности и безопасности .

Архитектурные объекты

[ редактировать ]

Архитектурный стиль REST предназначен для сетевых приложений, в частности приложений клиент-сервер. Более того, он предназначен для использования в масштабах Интернета, поэтому связь между пользовательским агентом (клиентом) и исходным сервером должна быть как можно более свободной , чтобы облегчить широкомасштабное внедрение.

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

Модель сущностей-связей концепций, выраженных в архитектурном стиле REST.

Ограничения архитектурного стиля REST влияют на следующие архитектурные свойства: [1] [6]

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

Архитектурные ограничения

[ редактировать ]

Архитектурный стиль REST определяет шесть основных ограничений. [6] [8] Когда эти ограничения применяются к архитектуре системы, она приобретает желаемые нефункциональные свойства , такие как производительность, масштабируемость, простота, модифицируемость, наглядность, переносимость и надежность. [1]

Формальные ограничения REST следующие: [9]

  • Клиент/Сервер. Клиенты отделены от серверов четко определенным интерфейсом.
  • Без сохранения состояния — конкретный клиент не использует хранилище сервера, когда он «находится в состоянии покоя».
  • Кэш. Ответы указывают на возможность кэширования.
  • Единый интерфейс
  • Многоуровневая система. Клиент обычно не может определить, подключен ли он напрямую к конечному серверу или к посреднику на этом пути.
  • Код по требованию (необязательно). Серверы могут временно расширять или настраивать функциональность клиента, передавая клиенту логику, которая может выполняться на стандартной виртуальной машине.

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

[ редактировать ]

Единообразное ограничение интерфейса имеет основополагающее значение для проектирования любой системы RESTful. [1] Это упрощает и отделяет архитектуру, что позволяет каждой части развиваться независимо. Четыре ограничения для этого универсального интерфейса:

  • Идентификация ресурсов в запросах. Отдельные ресурсы идентифицируются в запросах с использованием URI . Сами ресурсы концептуально отделены от представлений, возвращаемых клиенту. Например, сервер может отправлять данные из своей базы данных в формате HTML , XML или JSON , ни один из которых не является внутренним представлением сервера.
  • Манипулирование ресурсами посредством представлений. Когда клиент хранит представление ресурса, включая любые прикрепленные метаданные , у него есть достаточно информации для изменения или удаления состояния ресурса.
  • Сообщения, не требующие описания: каждое сообщение содержит достаточно информации, чтобы описать, как его обработать. Например, какой парсер вызывать, можно указать типом носителя . [1]
  • Гипермедиа как механизм состояния приложения ( HATEOAS ). Получив доступ к начальному URI для приложения REST (аналогично тому, как пользователь Интернета обращается к домашней странице веб-сайта), клиент REST затем должен иметь возможность динамически использовать предоставленные сервером ссылки для обнаружить все доступные ресурсы, которые ему необходимы. По мере доступа сервер отвечает текстом, который включает гиперссылки на другие доступные в данный момент ресурсы. Клиенту не требуется жестко запрограммировать информацию о структуре сервера. [10]

Модели классификации

[ редактировать ]

Было разработано несколько моделей, помогающих классифицировать REST API в соответствии с их соответствием различным принципам проектирования REST, например:

См. также

[ редактировать ]
  1. ^ Jump up to: а б с д и ж Филдинг, Рой Томас (2000). «Глава 5: Передача представительского состояния (REST)» . Архитектурные стили и проектирование сетевых архитектур программного обеспечения (доктор философии). Калифорнийский университет в Ирвайне. Архивировано из оригинала 13 мая 2021 г. Проверено 17 августа 2004 г.
  2. ^ Филдинг, Рой Т. (20 октября 2008 г.). «REST API должны управляться гипертекстом» . roy.gbiv.com. Архивировано из оригинала 18 марта 2010 г. Проверено 6 июля 2016 г.
  3. ^ Моурри, Ник (2012). Медиа, общество, мир: социальная теория и практика цифровых медиа . Лондон: Полити Пресс. п. 2. ISBN  9780745639208 . Архивировано из оригинала 27 февраля 2024 г. Проверено 9 июня 2021 г.
  4. ^ Филдинг, Рой Томас (2000). «Глава 6: Опыт и оценка» . Архитектурные стили и проектирование сетевых архитектур программного обеспечения (доктор философии). Калифорнийский университет в Ирвайне. Архивировано из оригинала 26 марта 2023 г. Проверено 21 июня 2023 г.
  5. ^ «Филдинг, обсуждающий определение термина REST» . группы.yahoo.com. Архивировано из оригинала 5 ноября 2015 года . Проверено 8 августа 2017 г.
  6. ^ Jump up to: а б Эрл, Томас; Карлайл, Бенджамин; Паутассо, Чезаре; Баласубраманиан, Радж (2012). «5.1». SOA с REST: принципы, шаблоны и ограничения для создания корпоративных решений с помощью REST . Река Аппер-Сэддл, Нью-Джерси: Прентис-Холл. ISBN  978-0-13-701251-0 .
  7. ^ Jump up to: а б Филдинг, Рой Томас (2000). «Глава 2: Архитектура сетевых приложений» . Архитектурные стили и проектирование сетевых архитектур программного обеспечения (доктор философии). Калифорнийский университет в Ирвайне. Архивировано из оригинала 16 декабря 2014 г. Проверено 12 апреля 2014 г.
  8. ^ Ричардсон, Леонард; Руби, Сэм (2007). RESTful веб-службы . Севастополь, Калифорния: O'Reilly Media. ISBN  978-0-596-52926-0 .
  9. ^ «Что такое REST API?» . www.visual-paradigm.com . Архивировано из оригинала 24 февраля 2024 г. Проверено 24 февраля 2024 г.
  10. ^ Гупта, Локеш (2 июня 2018 г.). "РЕСТ ХАТЕОАС" . Учебное пособие по REST API . RESTfulAPI.net. Архивировано из оригинала 7 апреля 2019 года . Проверено 10 марта 2019 г.
  11. ^ «Классификация HTTP API» . algermissen.io . Архивировано из оригинала 29 января 2023 г. Проверено 29 января 2023 г.
  12. ^ Иван Сальвадори, Фрэнк Сикейра (июнь 2015 г.). «Модель зрелости для семантических веб-API RESTful» . Конференция: Веб-сервисы (ICWS), 2015 Международная конференция IEEE OnAt . Нью-Йорк. Архивировано из оригинала 27 февраля 2024 г. Получено 14 декабря 2020 г. - через Researchgate.


Дальнейшее чтение

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: a9de20b2193a264c07ac035f283dfb36__1720944660
URL1:https://arc.ask3.ru/arc/aa/a9/36/a9de20b2193a264c07ac035f283dfb36.html
Заголовок, (Title) документа по адресу, URL1:
REST - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)