Загрузка...
Загрузка...
Нашли баг, сбой или ошибку в работе сервиса? Есть предложение по улучшению? Напишите нам — мы читаем каждое сообщение и стараемся быстро исправлять проблемы.
Форматируйте GraphQL запросы онлайн. Query, mutation, subscription. Синтаксис GraphQL, минификация, проверка.
Быстрые определения и связанные понятия из SEO-глоссария reChecker.
Минификация (minification) — удаление лишних символов из CSS, JS и HTML без изменения функциональности. Уменьшает размер файлов на 20-60%.
Читать в глоссарии →INP — метрика Core Web Vitals, измеряющая отзывчивость страницы на клики и нажатия. Заменила FID в марте 2024. Норма: до 200 миллисекунд.
Читать в глоссарии →CDN (Content Delivery Network) — сеть серверов по всему миру для быстрой доставки контента пользователям. Снижает TTFB и ускоряет загрузку статики.
Читать в глоссарии →Мета-теги — HTML-элементы в секции head, передающие информацию о странице поисковикам и браузерам. Узнайте какие мета-теги важны для SEO.
Читать в глоссарии →JSONPath синтаксис: $, .., [*], фильтры. Примеры запросов к JSON данным. Онлайн тестер JSONPath выражений.
УтилитыКак генерировать случайные тестовые данные онлайн: числа, строки, UUID, email-адреса, имена, цвета, IP-адреса. Применение в тестировании и разработке.
УтилитыПроверьте CSV файл онлайн: количество колонок, пустые ячейки, разделители. Поддержка запятой, точки с запятой, TAB.
УтилитыКак использовать инструмент поиска и замены текста онлайн: регулярные выражения, практические примеры, массовая замена URL и email.
Поделитесь с коллегами или изучите другие материалы блога
GraphQL — язык запросов для API, разработанный Facebook в 2015 году и опубликованный как открытый стандарт. В отличие от REST, GraphQL предоставляет единую точку доступа и позволяет клиенту точно указывать, какие данные ему нужны.
query GetUser($id: ID!) {
user(id: $id) {
id
name
email
posts {
title
createdAt
}
}
}
mutation CreatePost($input: PostInput!) {
createPost(input: $input) {
id
title
author {
name
}
}
}
fragment UserFields on User {
id
name
avatarUrl
}
query {
me { ...UserFields }
user(id: "1") { ...UserFields }
}
| Критерий | REST | GraphQL |
|---|---|---|
| Конечных точек | Много (/users, /posts, ...) | Одна (/graphql) |
| Over-fetching | Возможен | Нет — клиент задаёт поля |
| Under-fetching | Требует N+1 запросов | Один запрос для вложенных данных |
| Версионирование | /v1, /v2 | Схема эволюционирует |
| Кеширование | HTTP-кеш работает | Требует настройки (Apollo, Relay) |
| Интроспекция | Нет (или OpenAPI отдельно) | Встроена в спецификацию |
Читаемость: минифицированный запрос в одну строку сложно отлаживать. Форматирование с отступами показывает вложенность полей.
Минификация: для отправки в production-запросах убирают лишние пробелы и переносы, уменьшая размер тела запроса.
Пример минификации:
# Исходный запрос (65 символов с пробелами)
query { user(id: "1") { name email } }
# Минифицированный (36 символов)
query{user(id:"1"){name email}}
GraphQL — строго типизированный язык. Схема определяет структуру данных:
type User {
id: ID!
name: String!
email: String
age: Int
posts: [Post!]!
}
type Query {
user(id: ID!): User
users: [User!]!
}
type Mutation {
createUser(name: String!, email: String!): User!
}
! означает non-nullable поле. [Post!]! — non-nullable список non-nullable элементов.
Для работы с JSON-ответами GraphQL используйте JSON форматтер и JSONPath для извлечения данных.
Форматтер GraphQL на reChecker приводит запросы к читаемому виду с правильными отступами или минифицирует для отправки. Подсвечивает синтаксические ошибки до выполнения.