GrafQL

GraphQL – типизированный язык запросов с открытым исходным кодом. Использует собственный язык SDL (Schema Definition Language). Основные особенности – нужен только один endpoint, ответ возвращает только те данные, которые затребованы в запросе.

Схема GraphQL API включает:

  • Типы. Кастомные объекты, определяющие, как будет выглядеть API. Например – для приложения, работающего с соцсетями, стоит объявить типы Users, Posts, Likes.

  • Поля. Включены в типы и возвращают определённые виды данных. Например – в тип Users стоит включить поля ID, name, age. Знак «!» в конце поля говорит, что поле не может быть пустым.

  • Резолверы (resolvers). Функции, которые отвечают за получение данных для каждого поля в схеме.

Пример кода:

type User {
    id: ID!
    name: String!
    age: Int
}

Типы данных: Int, Float, String, Boolean, ID, кастомные типы.

Операции в GraphQL

  • Query (запрос). Аналог GET в REST, позволяет получать данные.

  • Mutation (изменение). Аналог POST, PUT и DELETE в REST, позволяет добавлять и изменять данные.

  • Subscription (подписка). Обеспечивает связь в реальном времени. При изменении данных сервер выполняет определённый в подписке запрос и отсылает обновлённые данные клиенту.

Last updated