Главная Категории Контакты Поиск

GraphQL. Введение.

Начало работы с GraphQL.

GraphQL ·10.08.2020·читать 4 мин 🤓·Автор: Alex Myzgin

GraphQL был разработан Facebook в 2012 году для запуска мобильных приложений. С момента появления спецификации GraphQL с открытым исходным кодом в 2015 году она приобрела большую популярность и в настоящее время используется многими командами разработчиков, включая таких гигантов, как GitHub, Twitter или Airbnb. Почему так и что именно представляет собой GraphQL? Давай взглянем.

Что такое GraphQL

GraphQL - это язык запросов для API, а так же среда для выполнения этих запросов с нашими существующими данными. GraphQL предоставляет полное и понятное описание данных в твоем API. Он даёт клиентам (браузерам) возможность запросить у сервера только именно то, что нужно, и возвращает только запрошенные данные, и ничего более.

Идея GraphQL возникла во время мобильного бума, и её главная цель для GraphQL состояла в том, чтобы устранить многие недостатки с которыми сталкивались разработчики мобильных приложений Facebook при работе с REST API.

Запрос данных в GraphQL vs REST

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

Язык определения схемы - Schema Definition Language (SDL)

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

type Movie {
  title: String
  Director: Director
}

type Director {
  name: String
  movies: [Movie]
}

Query - это базовая операция fetch в GraphQL для запроса данных с сервера GraphQL.

type Query {
  getMovies: [Movie]
  getDirectors: [Director]
}

Mutation - это одна из основных операций GraphQL, позволяющая манипулировать данными (создавать, изменять или удалять):

type Mutation {
  addMovie(title: String, director: String): Movie
}

Если ты хочешь узнать больше о SDL, официальный сайт GraphQL - то, что тебе нужно.

Первые шаги с GraphQL

Чтобы узнать больше о GraphQL, - то лучше всего попробовать его самому. GraphQL Editor - отличный вариант для рассмотрения. Этот инструмент пригодится тебе, когда начнешь изучать GraphQL, поскольку ты сможешь работать со своей схемой GraphQL в визуальном интерфейсе (конечно, можешь написать и код). GraphQL Editor предоставляет множество полезных функций, которые помогут тебе убедиться, что твой GraphQL API хорошо разработан.

Для новичков в GraphQL есть встроенный интерактивный учебник. Нажми на эту ссылку, и ты будешь перенаправлен на интерактивный учебник GraphQL.

GraphQL Editor предоставляет более простое:

  • Создание схемы - GraphQL Editor - это среда для разработки GraphQL, где ты можешь создать прототип своей схемы с визуальными узлами и проверить её. Параллельно создается традиционный код, поэтому ты можешь сделать это обоими способами.
  • Управление. - Редактор обеспечивает автоматизацию твоего проекта GraphQL; ты можешь импортировать уже существующую производственную схему, редактировать ее и генерировать фальшивый бэкэнд. Таким образом, можно протестировать новые функции даже без полностью работающего бэкенда!
  • Библиотеки автозаполнения для твоего интерфейса. Если JavaScript / TypeScript входит в число предпочитаемых тобой языков, ты можешь экспортировать библиотеки автозаполнения для своего проекта, основанные на graphql-zeus.
  • Совместная работа. Визуальное представление схемы улучшает взаимодействие между разработчиками и людьми с бизнес-ролями в команде.

Вывод

GraphQL, отслеживаемый самой популярной клиентской библиотекой Apollo, продолжает набирать популярность. GraphQL - это техническая сила, с которой придется считаться в 2020 году. Хоть REST и является по-прежнему более зрелой, и популярной технологией, но не давая возможности попробовать GraphQL, ты упускаешь возможность. Я считаю, что это очень интересный и перспективный подход к общению “клиент-сервер”.

Website, name & logo
Copyright © 2019. Alex Myzgin