#01. go-graphql 시작하기
2020. 12. 16. 00:15ㆍTutorial & Training/Go
728x90
본문은 시리즈로 작성되는 내용입니다.
Go Version은 1.15.6으로 진행되었습니다.
go get github.com/graphql-go/graphql
go get github.com/graphql-go/handler
먼저 graphql-go/graphql, graphql-go/handler를 install 합니다.
설치가 다 되었다면, 대충 main.go 파일을 만들어서 코드를 작성합니다.
// main.go
package main
import (
"github.com/graphql-go/graphql"
"github.com/graphql-go/handler"
"net/http"
)
func main() {
fields := graphql.Fields{
"hello": &graphql.Field{
Type: graphql.String,
Resolve: func(p graphql.ResolveParams) (interface{}, error) {
return "world", nil
},
},
}
rootQuery := graphql.ObjectConfig{Name: "RootQuery", Fields: fields}
schemaConfig := graphql.SchemaConfig{Query: graphql.NewObject(rootQuery)}
schema, _ := graphql.NewSchema(schemaConfig)
h := handler.New(&handler.Config{
Schema: &schema,
Pretty: true,
GraphiQL: false,
Playground: true,
})
http.Handle("/graphql", h)
http.ListenAndServe(":8888", nil)
}
두 패키지의 공식문서를 결합한다면 위 와 같은 코드가 됩니다.
graphql-go/graphql 에서 GraphQL에 필요로 하는 fields를 작성하여 Resolver를 구현한 내용입니다.
rootQuery를 통해 쿼리를 설정 후 스키마에 등록하여 handler를 통해 서빙할 수 있습니다.
Playground: true 옵션을 통해 플레이그라운드를 확인할 수 있는데
playground에서 쿼리를 직접 실행해보면
hello World!
정말 간단합니다!
728x90
'Tutorial & Training > Go' 카테고리의 다른 글
#03. GraphQL 프레임워크 어떤 프레임워크를 써야할까? (0) | 2020.12.15 |
---|---|
Django Prefetch와 비교해보는 GORM Preload에 대한 고찰 (0) | 2020.07.05 |
#02. Go - gqlgen 프로젝트 설정하기 (0) | 2020.06.01 |
#01.Go - GraphQL 알아보기 (0) | 2020.05.31 |
Go언어 ORM GORM의 크나큰 문제점 (0) | 2020.05.15 |