Поздравляем с Новым Годом!
   
Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: CXX Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 12 декабря 2022 г.)

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

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Юрков А.Д. ИССЛЕДОВАНИЕ ВОЗМОЖНОСТЕЙ GRAPHQL ДЛЯ РАЗРАБОТКИ ПРИЛОЖЕНИЙ // Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ: сб. ст. по мат. CXX междунар. студ. науч.-практ. конф. № 12(118). URL: https://sibac.info/archive/technic/12(118).pdf (дата обращения: 29.12.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

ИССЛЕДОВАНИЕ ВОЗМОЖНОСТЕЙ GRAPHQL ДЛЯ РАЗРАБОТКИ ПРИЛОЖЕНИЙ

Юрков Антон Дмитриевич

магистрант, кафедра системного моделирования и автоматизированного проектирования, Московский авиационный институт,

РФ, г. Москва

Кейно Павел Петрович

научный руководитель,

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

РФ, г. Москва

EXPLORING GRAPHQL CAPABILITIES FOR APPLICATION DEVELOPMENT

 

Anton Iurkov

undergraduate, Department of System Modeling and Computer-Aided Design, Moscow Aviation Institute,

Russia, Moscow

Pavel Keino

Scientific Supervisor, Associate Professor, Department of System Modeling and Computer-Aided Design, Moscow Aviation Institute,

Russia, Moscow

 

АННОТАЦИЯ

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

ABSTRACT

Graphql is a data query language and a data manipulation language that was created for the purpose of underfetching and overfetching data obtained with normal REST queries. In GraphQL, you can choose exactly the data that will be used in the future.

 

Ключевые слова: CMS, система, разработка, платформа/

Keywords: CMS, system, development, platform/

 

GraphQL набирает все большую популярность у разработчиков засчет его простоты и легкости использования. Для его использования достаточно установить GraphQL сервер, например, для Java Spring Framework есть несколько схожих реализаций. Для получения ответа от GraphQL сервера необходимо послать POST запрос на путь graphql с необходимым RequestBody. В одном теле запроса может находиться сразу несколько запросов к нескольким таблицам базы данных.

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

Но несмотря на такие плюсы, как возможность самому выбирать поля, решение двух вышеперечисленных проблем, при стандартной реализации есть одна знаменитая проблема - n+1 проблема. Она возникает, когда при 1:n маппинге таблиц вместо одного запроса ORM посылает n запросов выборки по id каждого элемента, то есть по каждому id. Эта проблема решается добавляем аннотаций к n:1 полям. Тогда множество запросов будут объединены в один с использованием join'ов. Создание и обработку таких запросов берет на себя ORM, и в случае Spring Framework - Spring Data JPA.

GraphQL поддерживает не только выборку данных, но и создание новых сущностей в таблице. GraphQL использует все средства ORM для этого и отправляет на ORM запрос, который потом работает как обычно при работе с БД. Дополнительным преимуществом GraphQL является поддержка серверной обработки запросов GraphQL через HTTP, WebSocket и RSocket. Это позволяет гибко и современно настраивать сервер.

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

 

Список литературы:

  1. Документация по GraphQL [электронный ресурс] – Режим доступа. – URL: https://docs.spring.io/spring-graphql/docs/current-SNAPSHOT/reference/html/
  2. Исследование ORM и GraphQL [электронный ресурс] – Режим доступа. – URL: https://habr.com/ru/company/haulmont/blog/451986/
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

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