Repolode
99designs

99designs/gqlgen

Библиотека для Go, генерирующая типобезопасный код GraphQL-сервера на основе схемы GraphQL.

Звёзды
10,767
Форки
1,262
Открытые issues
396
Последний коммит
10 часов назад

Что это?

gqlgen — библиотека для Go, предназначенная для создания GraphQL-серверов. Вы описываете API на GraphQL Schema Definition Language, а gqlgen генерирует необходимые типы Go и интерфейсы резолверов. Вам остаётся написать бизнес-логику, а шаблонный код создаётся автоматически. Сгенерированный код типизирован на всех уровнях и не полагается на map[string]interface{}.

Проект работает через процесс go generate и интегрируется с инструментарием Go с помощью зависимостей инструментов. Настройки задаются в файле gqlgen.yml: в нём можно сопоставить типы GraphQL с существующими структурами Go, принудительно включить резолверы для отдельных полей и изменить представление ID, например использовать int или string. Резолверы полей могут выполняться параллельно; степень параллелизма задаётся параметром worker_limit.

В репозитории также есть страница сравнения возможностей с другими реализациями GraphQL для Go, руководство для начала работы, справочная документация на pkg.go.dev и примеры приложений.

Ключевые возможности

  • 01Разработка на основе схемы: опишите API на GraphQL SDL и сгенерируйте код.
  • 02Генерирует типизированные модели Go и интерфейсы резолверов, избавляя от нетипизированных map.
  • 03Сопоставляет типы GraphQL с существующими структурами Go через gqlgen.yml или директивы.
  • 04Позволяет принудительно включать резолверы для отдельных полей, чтобы не загружать неиспользуемые данные дочерних полей.
  • 05Настраиваемое сопоставление типов ID с int, uint и string.
  • 06Параллельное выполнение резолверов полей с настраиваемым лимитом рабочих потоков.

Сценарии использования

  • Создание backend для GraphQL API на Go, когда важна типобезопасность.
  • Добавление слоя GraphQL поверх существующих структур Go и моделей данных.
  • Для команд, которым удобнее сначала спроектировать схему API, а затем сгенерировать по ней код сервера.

Темы

Частые вопросы

Что такое gqlgen?
Библиотека для Go, генерирующая типобезопасный код GraphQL-сервера на основе схемы GraphQL. gqlgen — библиотека для Go, предназначенная для создания GraphQL-серверов. Вы описываете API на GraphQL Schema Definition Language, а gqlgen генерирует необходимые типы Go и интерфейсы резолверов. Вам остаётся написать бизнес-логику, а шаблонный код создаётся автоматически. Сгенерированный код типизирован на всех уровнях и не полагается на map[string]interface{}.
gqlgen можно использовать бесплатно? Какая у него лицензия?
gqlgen распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
gqlgen всё ещё поддерживается?
Активно поддерживается. Последний коммит в gqlgen — 21 окт. 2026 г..
Для чего можно использовать gqlgen?
Создание backend для GraphQL API на Go, когда важна типобезопасность. Добавление слоя GraphQL поверх существующих структур Go и моделей данных. Для команд, которым удобнее сначала спроектировать схему API, а затем сгенерировать по ней код сервера.
Где скачать gqlgen?
Исходный код и инструкции по установке — на GitHub: https://github.com/99designs/gqlgen

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Среда выполнения на Rust, которая позволяет объединять сервисы, воркеры, очереди, cron-задачи и агентов, находить их и отслеживать через единый динамический каталог функций.

18,8 тыс.1,3 тыс.RustБез лицензииОбновлён позавчера