Статьи

GraphQL с Spring Boot

GraphQL — язык запросов для API

Основная потребность большинства приложений — это выборка данных из бэкэнда, который может быть базой данных, сторонним приложением, NFS и т. Д. Интерфейс API написан для облегчения этого.

Веб-сервисы REST являются одной из самых популярных архитектур для предоставления данных из серверной части. Раньше это было лучше всего, потому что темпы развития были не такими быстрыми, как сегодня. Нам всем так комфортно с REST, поэтому вопрос таков: «Является ли GraphQL лучше, чем REST?»

ОТДЫХ против GraphQL

  • Производительность сети : когда пользовательский интерфейс вызывает REST API, он не будет иметь никакого контроля над данными ответа, тогда как GraphQL предоставляет механизм для указания интересующих полей в ответе. Это уменьшает перегрузку сети, выбирая наименьшее возможное количество данных.
  • Конечная точка : в REST каждый ресурс идентифицируется URI. Это заставляет клиента знать каждую конечную точку. В GraphQL все ресурсы идентифицируются одной конечной точкой. Нет проблем с поддержкой нескольких URI.
  • Стратегия получения данных : в GraphQL у нас есть только одна конечная точка. Клиент отправляет один запрос с обязательными полями. Это помогает повысить производительность сети и позволяет избежать проблемы чрезмерного или недостаточного извлечения данных.


Вам также может понравиться: 
Пример GraphQL Java для начинающих [Spring Boot]

Что такое GraphQL?

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

Основные термины, наиболее часто используемые в GraphQL:

  • Схема  — договор между клиентом GraphQL и сервером GraphQL
  • Запрос  — аналогично вызову GET в REST и используется клиентом для запроса полей
  • Мутации  — это похоже на вызов POST / PUT в REST и используется клиентом для любой операции вставки / обновления

Архитектура GraphQL:

Схема и система типов

GraphQL использует язык определения схемы (SDL) для написания схемы, которая является контрактом между клиентом и сервером. В схеме мы определяем все поля и функции, предоставляемые API.

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

Вот пример схемы для ученика и его адреса . Эта схема содержит определение типа для ученика и адреса. Каждый тип может иметь одно или несколько полей. В нашем примере Student и Address имеют 5 и 3 поля соответственно. Необнуляемые поля представлены с помощью! в конце определения поля.

Отношения между типами также можно увидеть в следующем примере. Тип адреса указан в определении типа Student.


Джава