Чем отличаются виды сущностей 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 — реальное время.