API теперь повсюду. Итак, современным разработчикам нужен эффективный язык запросов, GraphQL.

Если вам скучно «Попробуйте еду, которая вам не нравится» — это один из результатов, когда вы отправляете запрос Bored API. Попробуйте сами On Browser URL или запросите на сайте. Мир API безграничен и бесспорно мощен на современных платформах.

Если вы не знакомы с API (интерфейс прикладных программ), это способ взаимодействия двух прикладных программ друг с другом. Например, если вы нажмете кнопку Загрузить свою фотографию на Facebook, API позволит вам загрузить свою фотографию на Facebook. Программисты могут использовать сотни тысяч API в своих общедоступных или частных приложениях. Потратьте несколько минут на чтение и потратьте несколько минут на обзор Простой обзорный обзор

Начнем с того, как вы должны видеть GraphQL? Это для следующего поколения дизайна API? Или вам интересно, как, черт возьми, это работает и почему некоторые разработчики предпочитают его REST? Если какой-либо из этих вопросов вызвал у вас интерес, читайте дальше! Мы расскажем обо всем, от лучших практик GraphQL до забавных фактов об API. Давайте начнем!

Что такого интересного в языке запросов для API?

GraphQL – это язык запросов к данным с открытым исходным кодом, созданный инженерами Facebook и ставший популярным в веб-разработке всего за несколько лет. Он уже используется GitHub, Shopify, Twitter, Pinterest и Yelp и другими. Но что он делает? И почему он так популярен?
Как только вы начнете работать с GraphQL, вы можете быть удивлены тем, насколько легко создавать собственные запросы, но не позволяйте этому убаюкать вас ложным чувством безопасности! Какими бы простыми ни были запросы, по-прежнему существуют передовые методы их использования.

GraphQL — это язык запросов для API, позволяющий пользователям извлекать из API только то, что им нужно, и ничего более. Речь идет не о создании точного сопоставления 1:1 между вашей моделью данных и вашими ответами API, а о том, чтобы получить именно то, что вам нужно от API в ответ. Например, в GraphQL вы можете запросить всех своих пользователей без каких-либо дополнительных данных, например, сколько у них подписчиков или сколько твитов они опубликовали.

Как упоминается на официальной веб-странице, GraphQL разработан, чтобы сделать API быстрыми, гибкими и удобными для разработчиков. Его даже можно развернуть в интегрированной среде разработки (IDE), известной как GraphiQL. В качестве альтернативы REST GraphQL позволяет разработчикам создавать запросы, которые извлекают данные из нескольких источников данных за один вызов API.

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

  1. Обслуживать множество ресурсов в одном запросе
    Сколько раз вы хотели отправить один запрос и получить обратно несколько ресурсов? С GraphQL это возможно! Изучая, как эффективно использовать GraphQL, учтите, что в одном вызове запроса вы можете включить ссылки на другие части вашего API: аналогичные типы данных, связанные точки данных или статические ресурсы. Это означает, что в одном запросе от GraphQL вы можете запросить множество ресурсов. Разработчик выигрывает, потому что ему нужна только одна конечная точка для каждого типа требуемого ресурса.
  2. API без версий
    Одним из самых больших преимуществ при создании API с помощью GraphQL является то, что он развивается вместе с вашим API. Ваш API может расти и меняться, но вместо того, чтобы поддерживать старые версии вашего API или создавать несколько API для разных сценариев, вы можете просто обновить схему своего клиента, указав новый номер версии. Это означает, что вам не нужно беспокоиться о нарушении обратной совместимости — вы получаете новые функции бесплатно!
  3. Использование системы типов
    Система типов и полей GraphQL предоставляет структурные метаданные о ваших данных, что позволяет клиентам выбирать именно то, что им нужно, из единого API. Речь идет о неограниченных возможностях, построенных из одной конечной точки. Этот подход позволяет избежать усилий из-за ручного разбора кода.
  4. GraphiQL — это интерактивный инструмент разработчика.
    Интерактивная часть GraphiQL связана с возможностью вводить текст и исследовать работающую систему. Обозреватель API позволяет перемещаться по схеме и ее содержимому, анализируя работающий API.
  5. Предоставьте свой собственный код и данные
    Одно из основных преимуществ использования GraphQL заключается в том, что вам не нужно запрашивать все подряд. По своему замыслу он дает клиентам то, что им нужно, и только то, что им нужно. Это позволяет клиентам приносить свои собственные данные, а не постоянно запрашивать их с сервера (и беспокоиться об ограничениях скорости).

Сравнение GraphQL с REST

Основное различие между GraphQL и REST API заключается в том, что GraphQL — это спецификация, язык запросов, а REST — это архитектурная концепция сетевых систем. Итак, если вы не работаете в среде, где используется множество API, вам может быть интересно, что такое GraphQL и почему это должно иметь для вас значение. Концепция на самом деле довольно проста: GraphQL — это язык запросов, который позволяет нам извлекать данные из наших API. Вместо того, чтобы отправлять сложные запросы с несколькими запросами, мы можем запросить именно то, что нам нужно, в одном запросе.



Недостатки использования GraphQL: когда не использовать?

  1. Хотя GraphQL имеет много преимуществ, он также имеет несколько недостатков. Поскольку GraphQL не так прост, как отправка запроса и получение данных обратно, внедрение GraphQL может потребовать значительного времени и ресурсов для настройки и обслуживания.
  2. Разработчики только знакомятся с технологией, которая существует менее двух лет, поэтому неудивительно, что в том, как люди используют GraphQL, существует множество антипаттернов. К счастью, если вы хотите правильно использовать GraphQL, вам не нужно далеко ходить. Полный список анти-паттернов еще не установлен, но мы знаем, что многие из них, по крайней мере, таковы.
  3. Придерживайтесь лучших практик:

Рекомендации по использованию GraphQL

  1. GraphQL имеет некоторые уникальные ограничения и лучшие практики, которые являются новыми для разработчиков. Из-за своего происхождения GraphQL является очень строгим протоколом, который разрешает действительные запросы, мутации и поля только тогда, когда они вызываются определенным образом.
  2. Обратитесь к руководству разработчика GraphQL, в котором описаны некоторые из этих рекомендаций по проектированию и шаблоны в качестве примеров того, чего не следует делать. GraphQL был создан как инструмент для фронтенд-разработчиков, которые часто не контролировали создание API, но могли использовать только GraphQL на своих веб-сайтах. Таким образом, они использовали его со стандартными API REST, не задумываясь о том, как они могут быть изменены серверами или бэкэндами.

Бонус: интересные факты об API

  1. Facebook имеет более 800 миллионов учетных записей пользователей и ежедневно обрабатывает более 850 миллиардов объектов. Тем не менее, их последняя версия Facebook имела среднее время загрузки страницы ‹1 секунды.
  2. Twitter имеет историю 50 тысяч твитов в секунду, но новым пользователям требуется всего 8 секунд, чтобы зарегистрироваться и начать твитить.
  3. Ежедневно через Gmail и Inbox от Google отправляется более 70 миллиардов электронных писем.
  4. IBM Watson обслуживает более 9 миллионов запросов в секунду.
  5. API Netflix обрабатывает более 5 миллионов документов менее чем за минуту каждый день.

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

Заключение

Благодаря своей выразительной и гибкой природе GraphQL — отличный выбор для разработки API. Есть также много других преимуществ GraphQL, которые делают его отличным выбором технологии для ряда вариантов использования и проектов. Мы понимаем, почему Facebook разработал такую ​​важную часть своей инфраструктуры с помощью GraphQL, и мы надеемся, что вы нашли эти забавные факты об API информативными и полезными! Если повезет, теперь вы знаете все, что нужно знать о GraphQL, и вы должны быть готовы ко всему!

Дополнительные ресурсы

а. Экосистема GraphQL (CNCF, как карта с открытым исходным кодом)



Запланируйте сеанс DDIChat в разделе Кодирование, программное обеспечение и разработка мобильных устройств:



Подайте заявку на участие в программе DDIChat Expert здесь.
Работайте с DDI: https://datadriveninvestor.com/collaborate
Подпишитесь на DDIntel здесь.