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, выбрать готовый пример и отправить первый запрос почти сразу.