PassFront
  1. PassFront
  2. База знаний
  3. DOM и браузер

Чем отличаются виды сущностей GraphQL схемы и где они применяются?

DOM и браузер

Виды сущностей GraphQL-схемы: типы (Type), Query, Mutation, Subscription, Input, Enum, Interface, Union, Scalar. Каждая задаёт свою часть контракта API.

Основные сущности схемы

Object Type

Описывает объект с полями:

type User {
  id: ID!
  name: String!
  posts: [Post!]!
}

Основной строительный блок (! — обязательное поле).

Query

Точки входа для чтения:

type Query {
  user(id: ID!): User
  users: [User!]!
}

Mutation

Точки входа для изменения:

type Mutation {
  createUser(input: CreateUserInput!): User!
}

Subscription

Точки входа для реального времени (WebSocket):

type Subscription {
  messageAdded: Message!
}

Input Type

Структуры для аргументов мутаций:

input CreateUserInput {
  name: String!
  email: String!
}

Scalar

Примитивные типы: Int, Float, String, Boolean, ID, плюс кастомные (Date).

Enum

Перечисления:

enum Role { ADMIN USER GUEST }

Interface / Union

Полиморфизм:

interface Node { id: ID! }
union SearchResult = User | Post

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

  • Type/Query — чтение данных.
  • Mutation/Input — изменение.
  • Subscription — real-time.
  • Enum/Interface/Union — типизация, полиморфизм.

Коротко для собеседования

Сущности GraphQL-схемы: Object Type (объекты с полями), Query (чтение), Mutation (изменение), Subscription (real-time), Input (аргументы мутаций), Scalar (примитивы + кастомные), Enum (перечисления), Interface/Union (полиморфизм). Type/Query — читать, Mutation/Input — менять, Subscription — реальное время.

Другие вопросы раздела