graphql-go: github.com/graph-gophers/graphql-go Index | Files | Directories

package graphql

import "github.com/graph-gophers/graphql-go"

Index

Package Files

graphql.go id.go introspection.go subscriptions.go time.go

type ID Uses

type ID string

ID represents GraphQL's "ID" scalar type. A custom type may be used instead.

func (ID) ImplementsGraphQLType Uses

func (ID) ImplementsGraphQLType(name string) bool

func (ID) MarshalJSON Uses

func (id ID) MarshalJSON() ([]byte, error)

func (*ID) UnmarshalGraphQL Uses

func (id *ID) UnmarshalGraphQL(input interface{}) error

type Response Uses

type Response struct {
    Errors     []*errors.QueryError   `json:"errors,omitempty"`
    Data       json.RawMessage        `json:"data,omitempty"`
    Extensions map[string]interface{} `json:"extensions,omitempty"`
}

Response represents a typical response of a GraphQL server. It may be encoded to JSON directly or it may be further processed to a custom response type, for example to include custom error data. Errors are intentionally serialized first based on the advice in https://github.com/facebook/graphql/commit/7b40390d48680b15cb93e02d46ac5eb249689876#diff-757cea6edf0288677a9eea4cfc801d87R107

type Schema Uses

type Schema struct {
    // contains filtered or unexported fields
}

Schema represents a GraphQL schema with an optional resolver.

func MustParseSchema Uses

func MustParseSchema(schemaString string, resolver interface{}, opts ...SchemaOpt) *Schema

MustParseSchema calls ParseSchema and panics on error.

func ParseSchema Uses

func ParseSchema(schemaString string, resolver interface{}, opts ...SchemaOpt) (*Schema, error)

ParseSchema parses a GraphQL schema and attaches the given root resolver. It returns an error if the Go type signature of the resolvers does not match the schema. If nil is passed as the resolver, then the schema can not be executed, but it may be inspected (e.g. with ToJSON).

func (*Schema) Exec Uses

func (s *Schema) Exec(ctx context.Context, queryString string, operationName string, variables map[string]interface{}) *Response

Exec executes the given query with the schema's resolver. It panics if the schema was created without a resolver. If the context get cancelled, no further resolvers will be called and a the context error will be returned as soon as possible (not immediately).

func (*Schema) Inspect Uses

func (s *Schema) Inspect() *introspection.Schema

Inspect allows inspection of the given schema.

func (*Schema) Subscribe Uses

func (s *Schema) Subscribe(ctx context.Context, queryString string, operationName string, variables map[string]interface{}) (<-chan interface{}, error)

Subscribe returns a response channel for the given subscription with the schema's resolver. It returns an error if the schema was created without a resolver. If the context gets cancelled, the response channel will be closed and no further resolvers will be called. The context error will be returned as soon as possible (not immediately).

func (*Schema) ToJSON Uses

func (s *Schema) ToJSON() ([]byte, error)

ToJSON encodes the schema in a JSON format used by tools like Relay.

func (*Schema) Validate Uses

func (s *Schema) Validate(queryString string) []*errors.QueryError

Validate validates the given query with the schema.

func (*Schema) ValidateWithVariables Uses

func (s *Schema) ValidateWithVariables(queryString string, variables map[string]interface{}) []*errors.QueryError

ValidateWithVariables validates the given query with the schema and the input variables.

type SchemaOpt Uses

type SchemaOpt func(*Schema)

SchemaOpt is an option to pass to ParseSchema or MustParseSchema.

func DisableIntrospection Uses

func DisableIntrospection() SchemaOpt

DisableIntrospection disables introspection queries.

func Logger Uses

func Logger(logger log.Logger) SchemaOpt

Logger is used to log panics during query execution. It defaults to exec.DefaultLogger.

func MaxDepth Uses

func MaxDepth(n int) SchemaOpt

MaxDepth specifies the maximum field nesting depth in a query. The default is 0 which disables max depth checking.

func MaxParallelism Uses

func MaxParallelism(n int) SchemaOpt

MaxParallelism specifies the maximum number of resolvers per request allowed to run in parallel. The default is 10.

func SubscribeResolverTimeout Uses

func SubscribeResolverTimeout(timeout time.Duration) SchemaOpt

SubscribeResolverTimeout is an option to control the amount of time we allow for a single subscribe message resolver to complete it's job before it times out and returns an error to the subscriber.

func Tracer Uses

func Tracer(tracer trace.Tracer) SchemaOpt

Tracer is used to trace queries and fields. It defaults to trace.OpenTracingTracer.

func UseFieldResolvers Uses

func UseFieldResolvers() SchemaOpt

UseFieldResolvers specifies whether to use struct field resolvers

func UseStringDescriptions Uses

func UseStringDescriptions() SchemaOpt

UseStringDescriptions enables the usage of double quoted and triple quoted strings as descriptions as per the June 2018 spec https://facebook.github.io/graphql/June2018/. When this is not enabled, comments are parsed as descriptions instead.

func ValidationTracer Uses

func ValidationTracer(tracer trace.ValidationTracer) SchemaOpt

ValidationTracer is used to trace validation errors. It defaults to trace.NoopValidationTracer.

type Time Uses

type Time struct {
    time.Time
}

Time is a custom GraphQL type to represent an instant in time. It has to be added to a schema via "scalar Time" since it is not a predeclared GraphQL type like "ID".

func (Time) ImplementsGraphQLType Uses

func (Time) ImplementsGraphQLType(name string) bool

ImplementsGraphQLType maps this custom Go type to the graphql scalar type in the schema.

func (Time) MarshalJSON Uses

func (t Time) MarshalJSON() ([]byte, error)

MarshalJSON is a custom marshaler for Time

This function will be called whenever you query for fields that use the Time type

func (*Time) UnmarshalGraphQL Uses

func (t *Time) UnmarshalGraphQL(input interface{}) error

UnmarshalGraphQL is a custom unmarshaler for Time

This function will be called whenever you use the time scalar as an input

Directories

PathSynopsis
errors
example/caching
example/caching/cachePackage cache implements caching of GraphQL requests by allowing resolvers to provide hints about their cacheability, which can be used by the transport handlers (e.g.
example/caching/server
example/customerrors
example/customerrors/server
example/social
example/social/server
example/starwarsPackage starwars provides a example schema and resolver based on Star Wars characters.
example/starwars/server
gqltesting
internal/common
internal/exec
internal/exec/packer
internal/exec/resolvable
internal/exec/selected
internal/query
internal/schema
internal/validation
introspection
log
relay
trace

Package graphql imports 18 packages (graph) and is imported by 167 packages. Updated 2020-11-13. Refresh now. Tools for package owners.