Платформа с открытым исходным кодом для оплаты по факту использования: учитывает события, применяет тарифы и кредиты, формирует счета и собирает платежи.
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 обновляется ежедневно.
Похожие проекты
Открытый Node.js-бэкенд с REST и GraphQL API, аутентификацией пользователей, файловым хранилищем и push-уведомлениями на MongoDB или PostgreSQL.
Open-source альтернатива Firebase на базе PostgreSQL с мгновенным GraphQL API, аутентификацией, хранилищем файлов и serverless-функциями.
API-сервис на Go для классической китайской поэзии с REST- и GraphQL-эндпоинтами и корпусом почти из 400 000 стихотворений на упрощённом и традиционном китайском.
Самостоятельный сервер, который превращает любую существующую базу данных PostgreSQL в RESTful API без написания кода бэкенда.
Среда выполнения на Rust, которая позволяет объединять сервисы, воркеры, очереди, cron-задачи и агентов, находить их и отслеживать через единый динамический каталог функций.