Can I create type with query: Query!
field?
I am trying to generate by
type Login {
query: Query!
user: User
}
and get error
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x18 pc=0x8850c3]
goroutine 1 [running]:
github.com/99designs/gqlgen/codegen/config.(*TypeReference).IsPtr(...)
...
exit status 2
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
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?
@aws_cognito_user_pools
(see AppSync Guide) and I want gqlgen to ignore/skip it as authentication is already handled by AppSync.
models:
Query:
fields:
product:
resolver: true # force a resolver to be generated
users:
resolver: true # force a resolver to be generated
// 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 }
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?
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
}
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 {
user,
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)?
// 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
}
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?