Repolode
99designs

99designs/gqlgen

Una biblioteca de Go que genera código de servidor GraphQL con seguridad de tipos a partir de una definición GraphQL basada en el esquema.

Estrellas
10,767
Forks
1,262
Issues abiertos
396
Último commit
hace 13 horas

¿Qué es?

gqlgen es una biblioteca de Go para crear servidores GraphQL. Defines la API con GraphQL Schema Definition Language y gqlgen genera los tipos de Go y las interfaces de resolver que necesitas, para que escribas la lógica de negocio mientras la herramienta genera el código repetitivo. El código generado tiene tipos en todas sus partes, en lugar de depender de map[string]interface{}.

El proyecto funciona mediante el flujo de trabajo go generate y se integra con la cadena de herramientas de Go a través de dependencias de herramientas. La configuración se hace en un archivo gqlgen.yml, donde puedes asociar tipos de GraphQL con structs de Go existentes, exigir resolvers para campos específicos y cambiar la representación de los ID, por ejemplo, a int o string. Los resolvers de campos pueden ejecutarse de forma concurrente y el grado de concurrencia se controla con el ajuste worker_limit.

El repositorio también incluye una página que compara sus funciones con las de otras implementaciones de GraphQL para Go, además de un tutorial de inicio, documentación de referencia en pkg.go.dev y aplicaciones de ejemplo.

Funciones clave

  • 01Desarrollo basado en el esquema: define la API en GraphQL SDL y genera código a partir de ella.
  • 02Genera modelos de Go tipados e interfaces de resolver, sin recurrir a mapas sin tipos.
  • 03Asocia tipos de GraphQL con structs de Go existentes mediante gqlgen.yml o directivas.
  • 04Permite exigir resolvers para campos específicos y así evitar obtener datos de campos secundarios que no se usan.
  • 05Permite configurar la correspondencia del tipo ID entre int, uint y string.
  • 06Ejecución concurrente de los resolvers de campos con un límite de workers configurable.

Casos de uso

  • Crear un backend de API GraphQL en Go cuando la seguridad de tipos es una prioridad.
  • Añadir una capa GraphQL sobre structs y modelos de datos existentes en Go.
  • Equipos que prefieren diseñar primero el esquema de la API y generar a partir de él el código del servidor.

Inicio rápido

  1. 1

    Crea y accede a un nuevo directorio de módulo de Go

    mkdir example cd example go mod init example
  2. 2

    Añade gqlgen como dependencia de herramientas

    go get -tool github.com/99designs/gqlgen
  3. 3

    Inicializa la configuración de gqlgen y genera los modelos

    go tool gqlgen init
  4. 4

    Inicia el servidor GraphQL

    go run server.go

Antes de usarlo

  • Requiere tener Go instalado y es una biblioteca exclusiva para servidores Go.
  • El diseño basado en esquemas implica que debes escribir el esquema GraphQL y los resolvers por tu cuenta.

Temas

Preguntas frecuentes

¿Qué es gqlgen?
Una biblioteca de Go que genera código de servidor GraphQL con seguridad de tipos a partir de una definición GraphQL basada en el esquema. gqlgen es una biblioteca de Go para crear servidores GraphQL. Defines la API con GraphQL Schema Definition Language y gqlgen genera los tipos de Go y las interfaces de resolver que necesitas, para que escribas la lógica de negocio mientras la herramienta genera el código repetitivo. El código generado tiene tipos en todas sus partes, en lugar de depender de map[string]interface{}.
¿gqlgen es gratuito? ¿Qué licencia tiene?
gqlgen es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿gqlgen sigue mantenido?
Mantenimiento activo. El último commit de gqlgen fue el 21 oct 2026.
¿Para qué puedo usar gqlgen?
Crear un backend de API GraphQL en Go cuando la seguridad de tipos es una prioridad. Añadir una capa GraphQL sobre structs y modelos de datos existentes en Go. Equipos que prefieren diseñar primero el esquema de la API y generar a partir de él el código del servidor.
¿Cómo se instala gqlgen?
Crea y accede a un nuevo directorio de módulo de Go: mkdir example cd example go mod init example Añade gqlgen como dependencia de herramientas: go get -tool github.com/99designs/gqlgen Inicializa la configuración de gqlgen y genera los modelos: go tool gqlgen init Inicia el servidor GraphQL: go run server.go
¿Dónde consigo gqlgen?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/99designs/gqlgen

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados