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

Что такое GraphQL?

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

Куда это вписывается?

  • Сервер GraphQL действует как слой перед многими сторонними службами и соединяет их всех с помощью одного API GraphQL.
  • Гибридный подход, при котором сервер GraphQL имеет подключенную БД, а также взаимодействует со сторонними службами.

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

Основные строительные блоки

Схема GraphQL является ядром любого проекта GraphQL. Вложенный в сервер GraphQL, он определяет все функции, доступные для клиента GraphQL. Самым основным элементом каждой схемы является type, который позволяет устанавливать отношения между различными элементами схемы и определять разрешенные операции GraphQL для выполнения на сервере и многое другое. Давайте обсудим основные части языка определения схем (SDL):

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

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

Мыслить на графиках

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

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

Если вам понравилось это читать, не забудьте похлопать. 👏👏

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

Спасибо!