Ко всем статьям

Гайд по Todos GraphQL API

Подробный гайд по Todos GraphQL API: схема, queries, mutations, поиск, пагинация и встроенный GraphQL-тренажёр.

5 мин чтения

Todos GraphQL API — это простое GraphQL API для первых todo-приложений, учебных проектов и практики с GraphQL-запросами на понятной схеме данных.

Его удобно использовать, если вы хотите быстро попробовать query, mutation, переменные, типы, пагинацию, поиск и фильтрацию без настройки собственного backend.

Главная идея GraphQL здесь в том, что вы сами выбираете, какие поля вернуть в ответе. Это удобно для интерфейсов, где не хочется получать лишние данные.

Возможности и лимиты#

Все данные в Todos GraphQL API привязаны к вашему аккаунту, поэтому заголовок Authorization обязателен для каждого запроса.

API поддерживает до 30 задач одновременно.

Лимит использования — 100 запросов в минуту.

Если лимит записей будет превышен, API работает по принципу FIFO: самая старая задача будет удалена автоматически, а новая сохранится вместо неё.

Что можно делать через API#

Через Todos GraphQL API можно:

  • получать одну задачу по id
  • получать список задач
  • создавать новые задачи
  • обновлять существующие задачи
  • удалять задачи
  • использовать пагинацию, сортировку, поиск и фильтры

Схема данных#

Todos GraphQL API работает с предсказуемой схемой задач.

Основные типы выглядят так:

Для создания и обновления задач используются отдельные input-типы:

Это удобно для первых GraphQL-проектов, потому что структура сразу понятна и не нужно угадывать, какие поля можно отправлять в запросе.

Основные queries и mutations#

В API есть два основных раздела схемы:

То есть через query вы читаете данные, а через mutation создаёте, обновляете и удаляете задачи.

Первый запрос меньше чем за минуту#

На странице API уже есть встроенный GraphQL-тренажёр со всеми заготовками для первого запроса.

Там уже подготовлены:

  • готовая схема
  • примеры query
  • примеры mutation
  • шаблоны переменных

За счёт этого первый запрос обычно можно отправить меньше чем за 1 минуту, даже если вы только начинаете знакомство с GraphQL.

Получение одной задачи#

Endpoint у API такой:

Пример запроса на получение одной задачи:

Переменные:

Такой подход удобен тем, что вы сами контролируете ответ. Если вам нужны только id, title и status, можно запросить только их.

Получение списка задач#

Пример запроса на список задач:

Переменные:

Поиск, сортировка и фильтры#

Todos GraphQL API поддерживает:

  • пагинацию через page и limit
  • сортировку по id через sort
  • поиск по title и desc через search
  • фильтры через filters

Пример фильтра по статусу:

Это удобно для таблиц, todo-листов, kanban-досок и любых интерфейсов, где нужно управлять выдачей данных более гибко.

Создание задачи#

Пример mutation для создания задачи:

Переменные:

Обновление задачи#

Пример mutation для обновления задачи:

Переменные:

Удаление задачи#

Пример mutation для удаления:

Переменные:

Если удаление прошло успешно, mutation вернёт true.

Playground#

Главное преимущество этой страницы в том, что здесь уже есть встроенный GraphQL Playground с готовыми заготовками.

Вам не нужно вручную писать схему, вспоминать синтаксис GraphQL или придумывать структуру первого запроса. Можно открыть страницу API, выбрать готовый пример и отправить первый запрос почти сразу.

Перейти на страницу Todos GraphQL API