Создание клиент-серверного приложения на основе restful api архитектуры | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 27 апреля, печатный экземпляр отправим 1 мая.

Опубликовать статью в журнале

Авторы: , ,

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №29 (371) июль 2021 г.

Дата публикации: 15.07.2021

Статья просмотрена: 536 раз

Библиографическое описание:

Ивонин, О. А. Создание клиент-серверного приложения на основе restful api архитектуры / О. А. Ивонин, А. Г. Гречихин, И. Р. Гильматдинов. — Текст : непосредственный // Молодой ученый. — 2021. — № 29 (371). — С. 18-20. — URL: https://moluch.ru/archive/371/83265/ (дата обращения: 19.04.2024).



В данной работе было спроектировано и разработано клиент-серверное приложение с архитектурой Restfull и взаимодействием с клиентом по API. Затронуты проблемы, связанные с проектированием микросервисов и его взаимодействия с клиентом. В качестве клиента был выбран React JS и тема электронного журнала для учета успеваемости студентов.

Ключевые слова: проектирование, алгоритмы, микросервисы, React JS, разработка ПО, асинхронное программирование, API, Restful, Java, Spring.

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

Цель работы: изучить принципы работы клиент-серверных приложений с Restful API архитектурой. Создать серверную часть приложения с подобной архитектурой. Создать клиентское веб-приложение с целью проверки работоспособности реализованной серверной части, выявить последующую возможность применения подобной серверной архитектуры приложения.

Серверная архитектура RESTful в современном мире клиент-серверных приложений является наиболее популярной по причине распределения нагрузок между несколькими серверами путем разбиения всего функционала на несколько микросервисов, с которыми может взаимодействовать клиентское приложения. Для реализации подобного серверного приложения был выбран язык программирования JAVA в связке с фреймворком Spring [1].

Одним из архитектурных решений в проекте является REST. Для взаимодействия между сервером и клиентом используется RESTful API. С помощью HTTP или HTTPS запросов (POST и GET), клиент может получать какие-либо данные, либо же изменять, добавлять и удалять компоненты. [2]

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

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

Схема работы такого сервера с RESTful API архитектурой отображена на рисунке 1.

Схема работы RESTful API сервера

Рис. 1. Схема работы RESTful API сервера

Для взаимодействия с Restful сервером было решено реализовать клиентское веб-приложение на языке программирования JavaScript с использованием Node.JS и React JS. Данная связка позволяет использовать JavaScript на сервере, повысить масштабируемость и читаемость реализуемого кода приложения. Основным же плюсом данного решения является разрешение использования JS для работы с данными и файлами (в противном случае данные операции блокирует встроенная в браузеры политика CORS (политика, работающая с взаимодействием между разными доменами, разрешая, или запрещая подобны обмен)). [3]

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

Асинхронность наиболее часто используется как раз-таки при использовании внешних API, которые взаимодействуют со сторонним сервером. Таким образом клиентское приложение отрисовывает интерфейс сразу же после получения «обещаний» от кода, который взаимодействует с API, а уже после получения «обещанных» данных обновляет только ту часть приложения, к которым относятся полученные данные. Упрощенная схема работы подобного клиентского приложения изображена на рисунке 2. [4]

Схема работы клиентского веб-приложения

Рис. 2. Схема работы клиентского веб-приложения

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

В процессе реализации были выявлены проблемы, с которыми сталкивается разработчик при реализации асинхронных запросов к серверу.

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

Литература:

  1. Лонг Д Java в облаке. Spring Boot, Spring Cloud, Cloud Foundry [учебное пособие] / Лонг Д. — Издательский Дом ПИТЕР, 2019–624 c.
  2. Арно Лоре Проектирование веб-API [учебное пособие] / Беликов Д. А. — ДМК-Пресс, 2020 г — 440 с.
  3. Руководство по React JS [электронный ресурс]: URL: https://ru.reactjs.org/docs/getting-started.html (дата обращения: 18.02.2021)
  4. Руководство по работе с REST API в React JS [электронный ресурс]: URL: https://ru.reactjs.org/docs/faq-ajax.html (Дата обращения: 22.02.2021)
Основные термины (генерируются автоматически): API, POST, GET, данные, клиентское веб-приложение, схема работы, CORS, клиентская часть, клиентское приложение, подобная архитектура.


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

проектирование, алгоритмы, Java, API, Spring, разработка ПО, микросервисы, React JS, асинхронное программирование, Restful

Похожие статьи

Создание BPM-системы на основе базы данных SQL при...

В статье авторы пытаются определить технологии и механизмы работы bpm системы

 Создание BPM системы на основе SQL базы данных при поддержке технологии REST API.

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

Подходы к архитектурному проектированию веб-приложений

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

Модификация архитектуры web-приложения, основанной на...

 В работе рассматривается способ организации архитектуры web-приложения на основе паттерна CQRS. В основе архитектуры лежит разделение на write- и read- модели, которые используют SQL и NoSql базы данных. Результатом применения архитектуры стало...

Средства визуализации структурированных данных в клиентских...

Приложения для работы со смешанными данными вроде OpenRefine позволяют сортировать и структурировать огромные массивы данных, искать в

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

Оптимальный алгоритм взаимодействия информационного...

В работе [4] предлагается переместить клиентскую часть информационной системы на мобильное устройство, при этом серверная часть

Схема работы шаблона CQRS приведена на рис. 3 (Cache — база данных, представ-ленная в терминах клиентской части приложения...

Создание обучающего приложения по информатике на базе Unity

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

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

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

Создание программы для сканирования уязвимостей...

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

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

Разработка мобильных приложений с использованием облачных...

В статье рассмотрены особенности разработки мобильных приложений с использованием

Начиная с 2017 г. для разработки мобильных приложений на основе облачных баз данных

При использовании шаблона MVVM мобильное приложение делится на следующие части

Создание архитектуры веб-порталов | Статья в журнале...

Веб-портал состоит из трех слов: пользовательский интерфейс, бизнес-логика и доступ к данным (рис. 1).

Архитектура является хорошей, если она отвечает данным критериям. Однако, очевидно, что любая архитектура не является бесконечно расширяемой.

Похожие статьи

Создание BPM-системы на основе базы данных SQL при...

В статье авторы пытаются определить технологии и механизмы работы bpm системы

 Создание BPM системы на основе SQL базы данных при поддержке технологии REST API.

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

Подходы к архитектурному проектированию веб-приложений

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

Модификация архитектуры web-приложения, основанной на...

 В работе рассматривается способ организации архитектуры web-приложения на основе паттерна CQRS. В основе архитектуры лежит разделение на write- и read- модели, которые используют SQL и NoSql базы данных. Результатом применения архитектуры стало...

Средства визуализации структурированных данных в клиентских...

Приложения для работы со смешанными данными вроде OpenRefine позволяют сортировать и структурировать огромные массивы данных, искать в

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

Оптимальный алгоритм взаимодействия информационного...

В работе [4] предлагается переместить клиентскую часть информационной системы на мобильное устройство, при этом серверная часть

Схема работы шаблона CQRS приведена на рис. 3 (Cache — база данных, представ-ленная в терминах клиентской части приложения...

Создание обучающего приложения по информатике на базе Unity

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

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

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

Создание программы для сканирования уязвимостей...

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

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

Разработка мобильных приложений с использованием облачных...

В статье рассмотрены особенности разработки мобильных приложений с использованием

Начиная с 2017 г. для разработки мобильных приложений на основе облачных баз данных

При использовании шаблона MVVM мобильное приложение делится на следующие части

Создание архитектуры веб-порталов | Статья в журнале...

Веб-портал состоит из трех слов: пользовательский интерфейс, бизнес-логика и доступ к данным (рис. 1).

Архитектура является хорошей, если она отвечает данным критериям. Однако, очевидно, что любая архитектура не является бесконечно расширяемой.

Задать вопрос