Научная статья на тему 'ЯЗЫК ЗАПРОСОВ GRAPHQL КАК ЗАМЕНА REST API. СРАВНЕНИЕ GRAPHQL И REST API'

ЯЗЫК ЗАПРОСОВ GRAPHQL КАК ЗАМЕНА REST API. СРАВНЕНИЕ GRAPHQL И REST API Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
117
16
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЯЗЫК ЗАПРОСОВ / GRAPHQL / REST API / ВЕБ-РАЗРАБОТКА / ВЕБ-СЕРВИСЫ / ДАННЫЕ / МОБИЛЬНЫЕ ПРИЛОЖЕНИЯ / ЗАПРОС ДАННЫХ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Галигузова Е.В., Илларионова Ю.Е.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «ЯЗЫК ЗАПРОСОВ GRAPHQL КАК ЗАМЕНА REST API. СРАВНЕНИЕ GRAPHQL И REST API»

Таблица 3

Расчёт прямых эксплуатационных расходов в евро

i Обознач. Примечание Значение

- кпр кпр = 1,1

1 ПЭР1 C = 55 000 000 евро k+ = 1; Ст = 0,02; Л = 0,2. 12 100 000

2 ПЭР2 2 200 000

3 ПЭР3 ПЭР3 = 4811977,5 евро 4 811 977,5

4 ПЭР4 (Пэк ГэкЬ = 2 * 40 = 80 евро/ч (Пэк tэк)2 = 5 * 20 = 100 евро/ч Нг = 1661 ч 298 980

Итого: 21 352 053,25

В таблице 3 приведен расчёт прямых эксплуатационных расходов по предлагаемой методике с учетом того, что цена самолёта и затраты на ГСМ взяты в статье [5] в пересчёте на год. Итоговое расчётное значение получилось достаточно близким к реальному (разница около 12%), несмотря на существенное различие по некоторым статьям расходов. Эту разницу можно компенсировать более точным подбором исходных данных.

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

1. Амплитов, П.А. Влияние геометрических параметров экраноплана типа А на его весовые и экономические характеристики: дис. ...канд. тех. наук: 05.07.02 / Амплитов Павел Андреевич. -Комсомольск-на-Амуре., 2013 - 213 с.

2. USA historical consumer price index (CPI) - 1913 to 2022. Inflation Rate and Consumer Price Index // URL: https://www.rateinflation.com/consumer-price-index/usa-historical-cpi/

3. The Big Mac index. Our interactive currency comparison tool // URL: https://www.economist.com/big-mac-index

4. Все индексы Биг Мака в рублях // URL: https://bigmacindex.ru

5. Хачатрян, Г. А. Проблемы оценки экономической эффективности лизинга в гражданской авиации / Г. А. Хачатрян // ЭТАП: экономическая теория, анализ, практика. - 2016. - № 5. - С. 61-70.

6. Евро - Доллар США история курса валюты // URL: https://ru.moneyratestoday.com/kotirovka-yevro-v-dollar-ssha.html

© Амплитов П.А., 2023

УДК 004.43

Галигузова Е.В.

Бакалавр 3 курса РТУ МИРЭА, г. Москва, Россия

Илларионова Ю.Е.

Бакалавр 3 курса РТУ МИРЭА, г. Москва, Россия

ЯЗЫК ЗАПРОСОВ GRAPHQL КАК ЗАМЕНА REST API. СРАВНЕНИЕ GRAPHQL И REST API.

Аннотация

В этой статье рассмотрены основные функции, связанные с GraphQL, а также значительные преимущества и недостатки, связанные с этой конкретной спецификацией API.

Целью исследования служит определение преимуществ GraphQL перед REST API. Авторы предпринимают попытку оценки эффективности применения технологии GraphQL, а также выявление основных недостатков.

Для написания статьи применялись теоретические методы исследования, а также использовались различные зарубежные научные материалы. В результате работы был составлен сравнительный анализ GraphQL и REST API, который демонстрирует ответ на вопрос: является ли GraphQL стоящей заменой REST API.

Ключевые слова: Язык запросов, GraphQL, REST API, веб-разработка, веб-сервисы, данные, мобильные приложения, запрос данных.

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

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

GraphQL является технологией API, отвечающей строгим требованиям современных frontend-приложений. В отличие от большинства языков запросов (например, SQL), GraphQL не используется для запроса определенного типа хранилища данных (например, базы данных MySQL). GraphQL применяется для запроса данных из любого количества различных источников. Структурированный способ, которым создаются запросы, представляет собой два типа операций: запросы и мутации. В API GraphQL наши данные формируются в строго типизированной схеме. Для GraphQL не имеет значение, откуда поступают данные. Источником может быть база данных, микросервис или базовый RESTful API. GraphQL обычно обслуживается по HTTP. Это означает, что нам не нужен специальный инструмент для запроса данных с сервера GraphQL.

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

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

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

Основное различие между GraphQL и REST API заключается в том, что GraphQL - это спецификация, язык запросов, в то время как REST - это архитектурная концепция сетевого программного обеспечения. Целью GraphQL является стандартизация передачи данных между frontend и backend.

На основе параметров, изученных при работе с технологиями REST и GraphQL, составим сравнительную таблицу (Таблица 1).

Таблица 1

Сравнение REST и GraphQL

Критерии REST GraphQL

Описание Архитектурный стиль в значительной Язык запросов для решения

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

обычный стандарт для разработки API интеграции API

Архитектура Использует серверную архитектуру Использует клиентскую архитектуру

Получение данных Часто избыточное или неполное Проблем не возникает

Отклик Вывод ответа в XML, JSON, YAML Вывод отклика в JSON

Чем определяется структура ответа Сервер Клиентский код

Кэширование Кэширование ответов по умолчанию Нет системы автоматического кэширования, но существуют клиенты для этого

Не предлагает безопасность типов или Предлагает безопасность типов и

автоматически сгенерированную автоматически генерируемую

документацию документацию

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

Список использованной литературы:

1. Бэнкс А., Порселло Е. GraphQL. Язык запросов для современных веб-приложений. изд. — СПб.: Питер, 2019. — 240 с.

2. Buna S. GraphQL in action. 1st edition — Manning Publications, 2021. — 375 с.

3. Subramanian H. Hands-On RESTful API Design Patterns and Best Practices: Design, develop, and deploy highly adaptable, scalable, and secure RESTful web APIs. — Packt Publishing, 2019. — 378 с.

4. Сравнение скорости GraphQL и REST [Электронный ресурс]. Режим доступа: https://www.youtube.com/watch?v=c2nPMnI4XrY, свободный. - (дата обращения: 20.01.2023).

5. Обратная сторона GraphQL. [Электронный ресурс]. Режим доступа: https://www.youtube.com/watch?v=L0caEdAls9g, свободный. - (дата обращения: 20.01.2023).

6. Realm Web (демонстрация GraphQL). Режим доступа: https://www.youtube.com/watch?v=mRR-2A9gAAM, свободный. - (дата обращения: 22.01.2023).

© Галигузова Е.В., Илларионова Ю.Е., 2023

УДК 004.056.55

Галигузова Е.В.

Бакалавр 3 курса РТУ МИРЭА г. Москва, Россия Илларионова Ю.Е.

Бакалавр 3 курса РТУ МИРЭА г. Москва, Россия

АЛГОРИТМЫ ШИФРОВАНИЯ ДАННЫХ Аннотация

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

i Надоели баннеры? Вы всегда можете отключить рекламу.