Repolode
99designs

99designs/gqlgen

一个 Go 语言库,基于 Schema 优先的方式,生成类型安全的 GraphQL 服务端代码。

Star
10,767
Fork
1,262
未关闭 Issue
396
最近提交
11小时前

这是什么?

gqlgen 是一个用于构建 GraphQL 服务端的 Go 库。开发者使用 GraphQL Schema 定义语言描述 API,gqlgen 会生成所需的 Go 类型和 resolver 接口,开发者只需专注实现业务逻辑。生成的代码全程保持类型安全,不依赖 map[string]interface{}。

项目基于 go generate 工作流,并通过 Go 的 tool 依赖机制接入工具链。配置写在 gqlgen.yml 中,可以将 GraphQL 类型映射到已有的 Go 结构体、为特定字段强制生成 resolver,也可以调整 ID 的 Go 类型(如 int 或 string)。字段 resolver 支持并发执行,并发度可通过 worker_limit 配置项控制。

仓库还提供与其他 Go GraphQL 实现的功能对比、入门教程、pkg.go.dev 上的 API 参考文档以及示例应用。

核心功能

  • 01Schema 优先开发:使用 GraphQL SDL 定义 API 并据此生成代码。
  • 02生成带类型的 Go 模型和 resolver 接口,避免使用无类型的 map。
  • 03通过 gqlgen.yml 或指令将 GraphQL 类型映射到已有的 Go 结构体。
  • 04支持为特定字段强制生成 resolver,避免获取未被请求的子对象数据。
  • 05可配置 ID 在 int、uint 和 string 之间的映射。
  • 06字段 resolver 支持并发执行,并可通过 worker_limit 调整并发数。

适用场景

  • 使用 Go 构建对类型安全有较高要求的 GraphQL API 后端。
  • 在已有的 Go 结构体和数据模型之上增加 GraphQL 接口层。
  • 偏好先设计 API Schema、再据此生成服务端代码的团队。

标签

常见问题

gqlgen 是什么?
一个 Go 语言库,基于 Schema 优先的方式,生成类型安全的 GraphQL 服务端代码。 gqlgen 是一个用于构建 GraphQL 服务端的 Go 库。开发者使用 GraphQL Schema 定义语言描述 API,gqlgen 会生成所需的 Go 类型和 resolver 接口,开发者只需专注实现业务逻辑。生成的代码全程保持类型安全,不依赖 map[string]interface{}。
gqlgen 可以免费使用吗?用的什么许可证?
gqlgen 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
gqlgen 还在维护吗?
活跃维护中。gqlgen 最近一次提交是在 2026年10月21日。
gqlgen 适合用来做什么?
使用 Go 构建对类型安全有较高要求的 GraphQL API 后端。 在已有的 Go 结构体和数据模型之上增加 GraphQL 接口层。 偏好先设计 API Schema、再据此生成服务端代码的团队。
在哪里获取 gqlgen?
源代码和安装说明在 GitHub 上:https://github.com/99designs/gqlgen

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目