ИСПОЛЬЗОВАНИЕ REST-АРХИТЕКТУРЫ В СОВРЕМЕННЫХ ВЕБ-ПРИЛОЖЕНИЯХ

Сергеев Олег Андреевич
Казанский национальный исследовательский технологический университет
бакалавр по специальности «Информационные системы и технологии»

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

Ключевые слова: , , , , , , , ,


Рубрика: 05.00.00 ТЕХНИЧЕСКИЕ НАУКИ

Библиографическая ссылка на статью:
Сергеев О.А. Использование REST-архитектуры в современных веб-приложениях // Современные научные исследования и инновации. 2019. № 2 [Электронный ресурс]. URL: https://web.snauka.ru/issues/2019/02/88775 (дата обращения: 23.09.2024).

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

Аббревиатура REST (Representational state transfer, передача состояния представления) была впервые использована в 2000 году Роем Филдингом в своей диссертации «Архитектурные стили и дизайн сетевых программных архитектур»[1]. Филдинг описал систему, при которой каждый запрос клиента к серверу несет в себе исчерпывающую информацию об ожидаемом ответе сервера, а также серверу не обязательно хранить информацию о состоянии клиента.  Системы, которые работают на основе архитектуры REST и отвечают ее требованиям, называют Restful системами.

При разработке веб-приложения, работающего на архитектуре REST используются следующие основные принципы:

  • Использование HTTP-методов
  • Нет возможности сохранить состояние
  • Данные предоставляются в URL в структуре, аналогичной структуре каталогов

В стандартной ситуации архитектура REST является простым и хорошо документированным инструментом управления информацией: каждая единица информации однозначно определяется идентификатором, имеющим строго заданный формат. При использовании HTTP-методов создается структура URL-адресов, а передавать данные принято в первозданном виде, в формате JSON, так как его структура «ключ:значение» позволяет легко оперировать данными как в исполняемом коде на сервере, так и в клиентских приложениях, но сама архитектура REST не предполагает явных ограничений для представления данных[2].

Каждой единице информации в REST дается однозначное определение в системе URL–адресов, это значит, что адрес и является первичным ключом для единицы информации. Например, для каталога книг по авторам для получения списка книг автора с идентификатором равным 2, URL адрес будет выглядеть как /author/2, а для десятой книги этого автора —  /author/2/book/10.

Именно это и подразумевается под строго заданным форматом данных. При этом формат данных по полученному адресу /author/2/book/10 не имеет никакого значения – это может быть и сама книга в вид файла формата *.doc, и фото ее обложки, и ссылка на статью об этой книге в интернет-библиотеке.

Управление информации в данном сервисе целиком и полностью базируется на протоколе передачи данных HTTP и его методах: GET (получить), PUT (добавить, заменить), POST (добавить, изменить), DELETE (удалить). Таким образом, в архитектуре доступы  действия CRUD (Create, Read, Update, Delete) и они могут выполняться как с использованием всех 4-х программ, так и на основе только GET и POST[3].

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

  • GET /author/ — получить список всех авторов в Базе Данных приложения
  • GET /author/10/ — получить информацию об авторе с идентификатором 10
  • POST /author/ — добавить книгу (данные должны быть отправлены в теле HTTP-запроса)
  • PUT /author/10 – изменить информацию об авторе с идентификатором 10 (данные должны быть отправлены в теле HTTP-запроса)
  • DELETE /author/10 – удалить информацию об авторе с идентификатором 10

Для серверного приложения, построенного на принципах REST важно получить запрос, который несет в себе информацию об ожидаемом ответе сервера, такой информацией могут быть заголовки HTTP-запроса, headers, в которых будут указаны формат тела запроса, ожидаемый формат ответа для клиента, язык системы, информация о браузере и другое.  В свою очередь, сервер укажет в ответе заголовки с аналогичной информацией о теле ответа и информацией о коде состояния. Эти коды делят на информационные, успешные, сигнал о перенаправлении, ошибки клиента и ошибки сервера[4].

Пример заголовков ответа сервера на GET-запрос:

GET / HTTP/1.1
Host: helloworld.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru,en-us;q=0.7,en;q=0.3
Accept-Charset: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7

Заключение

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

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

Архитектура REST – инструмент, благодаря которому задача создания интерфейса программы становится значительно проще. Конечно, при решении реальных задач по разработке возникает необходимость предусмотреть возможность защиты приложений от несанкционированного доступа, чтобы каждый не мог получить к доступ к информации и возможность изменять ее, данную проблему принято решать использованием HTTP-Authentication, JSON Web Token или других сессий различного типа.


Библиографический список
  1. Архитектура REST // Хабрахабр. URL: https://habrahabr.ru/post/38730/ (дата обращения: 20.02.2019).
  2. HTTP Authentication: Basic and Digest Access Authentication // The Internet Engineering Task Force. URL: https://tools.ietf.org/html/rfc2617 (дата обращения: 21.02.2019).
  3. The OAuth 2.0 Authorization Framework // The Internet Engineering Task Force. URL: https://tools.ietf.org/html/rfc6749 (дата обращения: 21.02.2019).
  4. Hypertext Transfer Protocol — HTTP/1.1. URL:https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html (дата обращения: 21.02.2019).


Все статьи автора «Сергеев Олег Андреевич»


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

Связь с автором (комментарии/рецензии к статье)

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

Вы должны авторизоваться, чтобы оставить комментарий.

Если Вы еще не зарегистрированы на сайте, то Вам необходимо зарегистрироваться: