Если вы следите за последними тенденциями в разработке веб-приложений и мобильных приложений, возможно, вы слышали шумиху вокруг 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.
Спасибо!