Categorygithub.com/appleboy/graphql
repositorypackage
0.7.4
Repository: https://github.com/appleboy/graphql.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# README

graphql Build Status GoDoc Coverage Status Join the chat at https://gitter.im/graphql-go/graphql

A work-in-progress implementation of GraphQL in Go. Its currently a port of graphql-js v0.6.0 which is based on the April 2016 GraphQL specification. Future efforts will be guided directly by the latest formal GraphQL specification (currently: October 2016).

Documentation

godoc: https://godoc.org/github.com/graphql-go/graphql

Getting Started

To install the library, run:

go get github.com/graphql-go/graphql

The following is a simple example which defines a schema with a single hello string-type field and a Resolve method which returns the string world. A GraphQL query is performed against this schema with the resulting output printed in JSON format.

package main

import (
	"encoding/json"
	"fmt"
	"log"

	"github.com/graphql-go/graphql"
)

func main() {
	// Schema
	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, err := graphql.NewSchema(schemaConfig)
	if err != nil {
		log.Fatalf("failed to create new schema, error: %v", err)
	}

	// Query
	query := `
		{
			hello
		}
	`
	params := graphql.Params{Schema: schema, RequestString: query}
	r := graphql.Do(params)
	if len(r.Errors) > 0 {
		log.Fatalf("failed to execute graphql operation, errors: %+v", r.Errors)
	}
	rJSON, _ := json.Marshal(r)
	fmt.Printf("%s \n", rJSON) // {“data”:{“hello”:”world”}}
}

For more complex examples, refer to the examples/ directory and graphql_test.go.

Third Party Libraries

NameAuthorDescription
graphql-go-handlerHafiz IsmailMiddleware to handle GraphQL queries through HTTP requests.
graphql-relay-goHafiz IsmailLib to construct a graphql-go server supporting react-relay.
golang-relay-starter-kitHafiz IsmailBarebones starting point for a Relay application with Golang GraphQL server.
dataloaderNick RandallDataLoader implementation in Go.

Blog Posts