Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
  • 06:07
    abagshaw commented #895
  • 02:20
    tankbusta commented #1424
  • 02:19
    tankbusta commented #1424
  • 00:28
    dncohen edited #1447
  • 00:27
    dncohen opened #1447
  • Jan 25 19:57
    lkatkus closed #1446
  • Jan 25 18:15
    lkatkus opened #1446
  • Jan 25 14:58
    steebchen edited #1445
  • Jan 25 14:58
    steebchen opened #1445
  • Jan 24 01:27
    coveralls commented #1444
  • Jan 24 01:25
    lisowskibraeden edited #1444
  • Jan 24 01:25
    lisowskibraeden opened #1444
  • Jan 22 07:26
    carldunham commented #1118
  • Jan 22 06:43
    carldunham commented #1212
  • Jan 22 01:57
    coveralls commented #1285
  • Jan 22 01:56
    benjaminjkraft synchronize #1285
  • Jan 22 01:47
    coveralls commented #1285
  • Jan 22 01:47
    benjaminjkraft commented #1285
  • Jan 22 01:46
    benjaminjkraft edited #1285
  • Jan 22 01:45
    benjaminjkraft synchronize #1285
Swarup Donepudi
Thanks @mariosttass
Is there a way to get the name of each operation as it is being performed using middleware?
Javi Roberts
Hi everyone! Is there a way to define a naming schema for resolver files? Such as resolver/schema.go instead of schema.resolvers.go
Swarup Donepudi
+1 for the ability to override the name for resolvers. Not sure if gqlgen supports it.
Kashif Shaikh
@art1415926535 you can’t embed Query field into another field
Alec Benzer
hey, trying to get started w/ gqlgen (edit: sorry, cat hit enter)

we have a monorepo, and I want to have the gqlgen "root" be a subdirectory of the overall repo. is that possible?

I'm getting an error like module gitlab.com/mycompany/monorepo@latest found, but does not contain package gitlab.com/mycompany/monorepo/go/path/to/gqlgenroot/graph/model

maybe a related clarifying question... in a setup where the gqlgen "root" is not the repo root, a) where should gqlgen.yml go, b) where should the paths in gqlgen.yml be relative to?
Hi guys, i have a question, is a way to get a query fields not from a rezolver, but from a middleware?
Kaarthik Rao Bekal Radhakrishna
oCtx := graphql.GetOperationContext(ctx) start, query, variables := oCtx.Stats.OperationStart, oCtx.RawQuery, oCtx.Variables
Have you tried this?

While migrating from v0.10.2 to v0.11.3, generated.go doesn't compile:

/private/var/tmp/_bazel_sateesh/.../sandbox/darwin-sandbox/1531/execroot/__main__/bazel-out/darwin-fastbuild/bin/src/.../generated.go:4521:20: undefined: gqlparser

generated.go does not import gqlparser github.com/vektah/gqlparser/v2. However, it is used as var parsedSchema = gqlparser.MustLoadSchema(sources...)

How did the gqlparser import vanish from generated.go file?

4 replies
Erik Müller
Hi all, is it possible to generate only the model files? I don't need the server/resolver part as I'm using AWS AppSync. But I have some Lambdas that should use the same models.
Erik Müller
Is there an option to ignore "undefined" directives? I'm using @aws_cognito_user_pools (see AppSync Guide) and I want gqlgen to ignore/skip it as authentication is already handled by AppSync.
Olivier Refalo
Hi.. a bit confused about gqlgen. anyways.. I tried to get the federation-demo working on the latest version with no success.
any idea?
Olivier Refalo
schema.resolvers.go:43:40: ProductResolver not declared by package generated
/schema.resolvers.go:46:37: UserResolver not declared by package generated
pulling my hairs
how do I tell gqlgen to generate resolvers?!
Olivier Refalo
tried with this
        resolver: true # force a resolver to be generated
        resolver: true # force a resolver to be generated
Olivier Refalo
I got it to compile by changing this:

// Product returns generated.ProductResolver implementation.
func (r *Resolver) Product() productResolver { return productResolver{r} }

// User returns generated.UserResolver implementation.
func (r *Resolver) User() userResolver { return userResolver{r} }

type productResolver struct{ *Resolver }
type userResolver struct{ *Resolver }
still the schema Query doesn't show neither Product nor User
actually... the schema doesn't have a Query type.. so I would think it's normal. ok need to sleep
Olivier Refalo
ok - I got it working... at last
Simeon Miteff
Hi There. is graphql.AddError() expected to work in subscription resolvers?
Simeon Miteff
I'm starting a goroutine in my resolver and returning a channel and nil error (unavoidable - I need to return the channel early to get async responses), so no opportunity to pass the error via return. I add the error to the response context in the goroutine, but the resolver never sends an error down the websocket connection - it just sends a stop message.
Hi there... Is there any example to use gRPC transport instead of HTTP?
Simen A. W. Olsen
Hello! I'm trying to build a BFF based on gqlgen and I'm having issues with using models gqlgen.yaml. I want to reference the models generated by protobuf, so that I can easily pass the result from the GRPC client. The examples are reassigning to the generated model manually, my types are larger, so it would be very much boilerplate. However, when I try to set the models in the configuration file, gqlgen command generates resolvers for all nested structs. How do avoid it? I haven't been able to turn them off, is there a trick?
@javiroberts I think there is a filename_template key to set the resolver name in config file config

Hi there.
I have a validate directive directive @validate(rule: String!) on INPUT_FIELD_DEFINITION.

and the directive implemention:

func validateDirective(ctx context.Context, obj interface{}, next graphql.Resolver, rule string) (res interface{}, err error) {
    res, err = next(ctx)
    if verr := validate.Var(res, rule); verr != nil {
        return nil, verr

    return res, nil
what's the best approach to have validation messages in graphql errors. I mean the fields and related errors.
for now I'm returning only one field's error for a request because the directive is executed once for field and the returns. But I want to return error for multiple fields.
Jan Krynauw

Hi, I'm new here...
We currently have a graphQL server running in NodeJS and Apollo Server making use of authentication outside of the GraphQL layer. Rather than doing any authentication or authorization work in the GraphQL layer (in resolvers/models), it’s possible to simply pass through the headers or cookies to your REST endpoint and let it do the work.

// src/server.js
context: ({ req }) => {
 // pass the request information through to the model
 return {
   models: {
     User: generateUserModel({ req }),
// src/models/user.js
export const generateUserModel = ({ req }) => ({
 getAll: () => {
   return fetch('http://myurl.com/users', { headers: req.headers });

Would something like this be possible with gqlgen and resolvers using gRPC (instead of REST)?

hi how can i set type for model.fields?
// Defining mutation function
func mutateHook(b *modelgen.ModelBuild) *modelgen.ModelBuild {
    for _, model := range b.Models {
        for _, field := range model.Fields {
            field.Tag += ` orm_binding:"` + model.Name + `.` + field.Name + `"`
        model.Fields = append(model.Fields, &modelgen.Field{
            Description: "ex",
            Name:        "ex",
            Type:        model.Fields[0].Type,
    return b
hi all, I am getting 422 status code and no data is not found. Throws an error "Error: Objects are not valid as a React child (found: Error: Response not successful: Received status code 422). If you meant to render a collection of children, use an array instead." for a query made from Apollo client. However the query works fine in the graphql editor

How to efficiently implement broadcasting?

I have a Subscription that emits a new value every second. Multiple (100+) clients are subscribed to it using the same exact query.
Does gqlgen cache similar queries? If not, is it possible to have single resolver / executor / marshaler rather than one per subscribed client?

Hello. I would like to build a modular app structure with gqlgen. For examples I will have blog and auth folder
and I would like to put all schema related to blog under blog folder
like schemas, resollvers etc
I couldn't find any example.
Erik Müller
Screenshot 2020-09-17 at 21.44.46.png
Hi all, I keep hitting the "transport not supported" error. Does anyone know what this means/how to solve it?
(I'm doing a POST)
I using Chi for routing:
func NewRouter(r *chi.Mux, h http2.AppHandler, j *jwtauth.JwtAuth) *chi.Mux {
    r.Route("/graphql", func(r chi.Router) {
        r.Handle("/", playground.Handler("GraphQL playground", "/query"))
        r.HandleFunc("/query", h.GraphQL.Handle)
    return r
Erik Müller
Ah, think I found the issue, I was creating my sever using the New func (which does not add any "protocols") instead of the NewDefaultServer func (which adds a bunch of default "protocols")