it Новости Просто о сложном: язык запросов GraphQL
Просто о сложном: язык запросов GraphQL

Просто о сложном: язык запросов GraphQL

2 462
29 мая 2022 в 14:54

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

Но на самом деле многие из нас ежедневно используют продукты, созданные с его помощью. Например, Facebook, New York Times, GitHub, Shopify, Pinterest и пр. Давайте познакомимся с языком запросов поближе. 


GraphQL: определение и преимущества

GraphQL – это язык запросов, их проведения и манипулирования данными API. Его создала компания Meta (ранее Facebook) для собственных потребностей в 2012 году, а в 2015 – он стал доступен широкой аудитории. В конце 2018 года права на язык перешли к GraphQL Foundation. Сегодня он официально так и не переведен на русский язык.


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


Преимущества:

  • достаточно одного запроса для извлечения данных;
  • нет привязки к одной базе данных;
  • клиентоориентированность за счет предоставления возможности получения необходимого количества данных;
  • для работы достаточно одного endpoint;
  • можно проверить правильность запроса до начала работы команды;
  • возможна комбинация запросов.


GraphQL имеет в своей основе два главных действия: запрос – query и схему – schema.


Запрос – query

GraphQL позволяет выполнять query с прописыванием дополнительного поля stuff. При формировании запроса не требуется прописывать полный путь и знать откуда будут поступать данные. Достаточно отправить его, и сервер сделает все остальное самостоятельно. То есть, отправленный query поступит на сервер и возвратится в виде готового ответа в формате JSON.


Самый простой запрос:

query {
	friends {
		name
		others {
			name
		}
	}
}

На него последует следующий ответ:

{
	"data": {
		"friends": {
			"name": "Alex",
			"others": [{
				"name": "Mike"
			},
			{
				"name": "Jason"
			},
			{
				"name": "Jack"
			}]
		}
	}
}

Ответ полностью отвечает на запрос и имеет идентичный ему формат. Для взаимодействия с языком запросов лучше всего использовать интегрированную среду разработки GraphiQL. После ее подключения будет проще структурировать все запросы, т.к. откроется удобный пользовательский интерфейс с возможностью прописывания каждой schema.


Схема – schema

Schema – это описание запрашиваемых типов данных и всего что с ними связано. Сервисы GraphQL прописывают типы данных, которые можно использовать для запроса. Без проверки на соответствие разработанной схеме, команда не будет выполнена. 


Например, отправляя запрос можно выбрать имя и адрес:

query {
	friend {
		name
		address
	}
}

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

Больше интересных новостей

Комментарии
Добавить комментарий

Пока комментариев нет