GraphQL

Ищите подрядчика?
Устройте конкурс между агентствами и узнайте реальные цены и сроки выполнения вашего проекта. Создание заказа занимает 5 минут.
Об инструменте

Что такое GraphQL

GraphQL – технология, которая включает в себя кроссплатформенный язык запросов от клиента к серверу, а также среду выполнения кода. Язык создали в Facebook* для работы над внутренними проектами как более продвинутую альтернативу REST API – архитектурному паттерну передачи HTTP-запросов. С 2015 года Facebook опубликовала технологию в открытый доступ, а с 2018 года технология поддерживается организацией GraphQL Foundation. 

Код GraphQL работает в собственной среде выполнения – GraphQL Server. Среда выполнения выступает прокладкой между пользователем приложения и веб-сервером с базой данных. В отличие от REST API, GraphQL Server не запрашивает данные в недостаточном, либо избыточном количестве и запрашивает данные за один запрос. С помощью GraphQL Server, за один запрос можно обращаться даже к разным базам данных.

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

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

Подобно REST API, GraphQL поддерживает WebSocket – относительно молодой протокол связи, который является более продвинутой технологией в сравнении с HTTP-запросами.

Где применяют GraphQL

GraphQL применяется в разработке сайтов, а также мобильных и десктопных приложений с серверной частью. Технология поддерживает интеграцию с большим набором языков программирования, а также инструментов, пригодных для разработки под различные платформы. Список доступных интеграций, а также пакетов-расширений и утилит для GraphQL можно изучить на официальном сайте: graphql.org/code/.

Преимущества использования GraphQL в разработке

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

Недостатки использования GraphQL в разработке

  • в высоконагруженных проектах GraphQL может немного уменьшать скорость ответа сервера из-за маппинга данных;
  • в небольших проектах GraphQL будет избыточным – проще разработать запросы на REST API.

Примеры использования GraphQL

Список известных компаний, которые используют GraphQL, можно посмотреть на официальном сайте: graphql.org/users/.

Подробнее Свернуть
СЛЕДУЮЩАЯ
Angular