99designs / 99designs/gqlgen

Use sql.NullString & Co. declaring them in gqlgen.yml config file

Abierto
#1,662 3 comentarios 4 reacciones 0 asignados Ver en GitHub
binder question support
Lenguaje dominante
Go
Estrellas
10.8k
Forks
1.3k
Merge medio
2 d 36 min
PR fusionados (30 d)
26

Descripción

### What happened?

I'm trying to avoid pointers as my structs fields.

But `gqlgen` generates struct like:

```go
type User struct {
ID uint64 `json:"id"`
Nickname string `json:"lastname"`
Img *string `json:"img"`
}
```

with `*string` as you can see.

### What did you expect?

I would like to use something like this in `gqlgen.yml` config file:

```yml
models:
String:
model:
- github.com/99designs/gqlgen/graphql.String
- github.com/99designs/gqlgen/graphql.NullString
# or maybe also:
- database/sql.NullString
```

So to have this instead:

```go
type User struct {
ID uint64 `json:"id"`
Nickname string `json:"lastname"`
Img sql.NullString `json:"img"`
}
```

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

El issue trata de modificar la generación de código de gqlgen para admitir sql.NullString y tipos similares mediante la configuración de gqlgen.yml. Empieza examinando la lógica de generación de código de la biblioteca gqlgen, especialmente en torno al mapeo de modelos y la resolución de tipos. Busca dónde se determinan los tipos de los campos y cómo se analiza el archivo de configuración. El objetivo es permitir tipos nullable que no sean punteros en los structs generados. Revisa los tests existentes para la generación de modelos para entender el comportamiento esperado y añade nuevos tests para la nueva opción de configuración.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
go
Área
backend-api-design
Tipo de issue
Nueva funcionalidad
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bien especificado
Aptitud para principiantes
45/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.