Здравствуйте, я играл с Golang и хотел попробовать GraphQL вместо RESTful-подхода. Поэтому я решил использовать https://github.com/99designs/gqlgen для его реализации.
Я следовал руководству по началу работы и все шло хорошо, пока я не вставил преобразователь. go code.
Структура моей папки:
├── go.mod
├── go.sum
├── gqlgen.yml
├── graph
│ ├── generated
│ │ └── generated.go
│ ├── model
│ │ └── models_gen.go
│ ├── resolver.go
│ ├── schema.graphqls
│ └── schema.resolvers.go
└── server.go
Мой распознаватель. go
package graph
import (
"context"
"fmt"
"math/rand"
)
type Resolver struct {
todos []*model.Todo
}
func (r *mutationResolver) CreateTodo(ctx context.Context, input model.NewTodo) (*model.Todo, error) {
todo := &model.Todo{
Text: input.Text,
ID: fmt.Sprintf("T%d", rand.Int()),
User: &model.User{ID: input.UserID, Name: "user " + input.UserID},
}
r.todos = append(r.todos, todo)
return todo, nil
}
func (r *queryResolver) Todos(ctx context.Context) ([]*model.Todo, error) {
return r.todos, nil
}
Очевидно, что это вызовет ошибку, поскольку я не импортировал модель.
Поэтому я попытался импортировать его таким образом "[MODULENAME]/graph/model"
Это привело к:
graph/schema.resolvers.go:14:28: (*mutationResolver).CreateTodo redeclared in this block
previous declaration at graph/resolver.go:18:6
graph/schema.resolvers.go:18:25: (*queryResolver).Todos redeclared in this block
previous declaration at graph/resolver.go:28:6
Если я попытаюсь [MODULENAME]/model
Это выдает мне эту ошибку:
cannot find module providing package [MODULENAME]/model: unrecognized import path "[MODULENAME]/model": https fetch: Get "[MODULENAME]/model?go-get=1": dial tcp [MYSERVER IP]: connect: connection refused
Я новичок в Golang и в модулях в общем. Я пытался решить, но почему-то я очень запутался. Я действительно ценю любую помощь.
С уважением