99designs / 99designs/gqlgen

Field with arguments on non-root type doesn’t generate resolver stub.

Offen
#3,981 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Go
Sterne
10.8k
Forks
1.3k
Ø Merge
2 T. 36 Min.
Gemergte PRs (30 T.)
26

Beschreibung

I’m seeing that gqlgen does not generate resolver stubs for fields with
arguments when those fields are on a non-root object type.

Example schema:

```GraphQL
type Query {
viewer: Viewer!
}

type Viewer {
me: User!
chat(id: ID!): Chat
user(id: ID!): User
usersByName(name: String!): [User!]!
getRtcToken(chatId: ID!): String!
}
```

After running `gqlgen generate`, the generated model includes a `Viewer` struct
with fields like this:

```go
type Viewer struct {
Me *User `json:"me"`
Chat Chat `json:"chat,omitempty"`
User *User `json:"user,omitempty"`
UsersByName []*User `json:"usersByName"`
GetRtcToken string `json:"getRtcToken"`
}
```

No resolver stubs are generated for `Viewer.chat`, `Viewer.user`,
`Viewer.usersByName`, or `Viewer.getRtcToken` unless I explicitly force them in
gqlgen.yml:

```yml
models:
Viewer:
fields:
chat:
resolver: true
user:
resolver: true
usersByName:
resolver: true
getRtcToken:
resolver: true
```

Questions:
1) Is this behavior intended/by design?
2) If yes, what is the recommended pattern for “contextual” wrapper types like
Viewer where most fields are supposed to resolve dynamically using args
and auth context?
3) Would it be acceptable for gqlgen to auto-generate resolver stubs for
fields with arguments by default (at least when no matching Go method exists),
or is there a strong reason not to?

Environment:
- gqlgen version: github.com/99designs/gqlgen v0.17.85
- Go version: go version go1.25.5 darwin/arm64

Thanks!

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.