graphql-go / graphql

An implementation of GraphQL for Go / Golang
MIT License
9.87k stars 839 forks source link

Need Resolver as an Interface in Field #585

Closed sangianpatrick closed 3 years ago

sangianpatrick commented 3 years ago

Hii, I was worry about the dependencies injection in Resolve I think it should be good if there is a Resolve Interface

just like:

type Resolver interface{
       Resolve(graphql.ResolveParams) (interface{}, error)
}

So, we can create concrete struct with dependencies injected into it.

just like:

type ArticleCreationResolver struct{
    repository ArticleRepository
}

func NewArticleCreationResolver(repository ArticleRepository) graphql.Resolver{
      return &ArticleCreationalResolver{
               repsitory: repository,
      }
}

func (r ArticleCreationalResolver) Resolve(graphql.ResolveParams) (interface{}, error) {
     // processing request

     return result, error
}