Documentation ¶
Index ¶
- type ID
- type NullBool
- type NullFloat
- type NullInt
- type NullString
- type NullTime
- type Response
- type Schema
- func (s *Schema) ASTSchema() *types.Schema
- func (s *Schema) Exec(ctx context.Context, queryString string, operationName string, ...) *Response
- func (s *Schema) Inspect() *introspection.Schema
- func (s *Schema) Subscribe(ctx context.Context, queryString string, operationName string, ...) (<-chan interface{}, error)
- func (s *Schema) ToJSON() ([]byte, error)
- func (s *Schema) Validate(queryString string) []*errors.QueryError
- func (s *Schema) ValidateWithVariables(queryString string, variables map[string]interface{}) []*errors.QueryError
- type SchemaOpt
- func DirectiveFuncs(dirFuncs map[string]types.DirectiveFunc) SchemaOpt
- func DisableIntrospection() SchemaOpt
- func Logger(logger log.Logger) SchemaOpt
- func MaxDepth(n int) SchemaOpt
- func MaxParallelism(n int) SchemaOpt
- func PanicHandler(panicHandler errors.PanicHandler) SchemaOpt
- func SubscribeResolverTimeout(timeout time.Duration) SchemaOpt
- func Tracer(t tracer.Tracer) SchemaOpt
- func UseFieldResolvers() SchemaOpt
- func UseStringDescriptions() SchemaOpt
- func ValidationTracer(tracer tracer.LegacyValidationTracer) SchemaOpt
- type Time
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ID ¶
type ID string
ID represents GraphQL's "ID" scalar type. A custom type may be used instead.
func (ID) ImplementsGraphQLType ¶
func (ID) MarshalJSON ¶
func (*ID) UnmarshalGraphQL ¶
type NullBool ¶ added in v0.0.7
NullBool is a string that can be null. Use it in input structs to differentiate a value explicitly set to null from an omitted value. When the value is defined (either null or a value) Set is true.
func (NullBool) ImplementsGraphQLType ¶ added in v0.0.7
func (*NullBool) UnmarshalGraphQL ¶ added in v0.0.7
type NullFloat ¶ added in v0.0.7
NullFloat is a string that can be null. Use it in input structs to differentiate a value explicitly set to null from an omitted value. When the value is defined (either null or a value) Set is true.
func (NullFloat) ImplementsGraphQLType ¶ added in v0.0.7
func (*NullFloat) UnmarshalGraphQL ¶ added in v0.0.7
type NullInt ¶ added in v0.0.7
NullInt is a string that can be null. Use it in input structs to differentiate a value explicitly set to null from an omitted value. When the value is defined (either null or a value) Set is true.
func (NullInt) ImplementsGraphQLType ¶ added in v0.0.7
func (*NullInt) UnmarshalGraphQL ¶ added in v0.0.7
type NullString ¶ added in v0.0.7
NullString is a string that can be null. Use it in input structs to differentiate a value explicitly set to null from an omitted value. When the value is defined (either null or a value) Set is true.
func (NullString) ImplementsGraphQLType ¶ added in v0.0.7
func (NullString) ImplementsGraphQLType(name string) bool
func (*NullString) Nullable ¶ added in v0.0.7
func (s *NullString) Nullable()
func (*NullString) UnmarshalGraphQL ¶ added in v0.0.7
func (s *NullString) UnmarshalGraphQL(input interface{}) error
type NullTime ¶ added in v0.0.7
NullTime is a string that can be null. Use it in input structs to differentiate a value explicitly set to null from an omitted value. When the value is defined (either null or a value) Set is true.
func (NullTime) ImplementsGraphQLType ¶ added in v0.0.7
func (*NullTime) UnmarshalGraphQL ¶ added in v0.0.7
type Response ¶
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 ¶
type Schema struct {
// contains filtered or unexported fields
}
Schema represents a GraphQL schema with an optional resolver.
func MustParseSchema ¶
MustParseSchema calls ParseSchema and panics on error.
func ParseSchema ¶
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 ¶
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 ¶
func (s *Schema) Inspect() *introspection.Schema
Inspect allows inspection of the given schema.
func (*Schema) Subscribe ¶
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) Validate ¶
func (s *Schema) Validate(queryString string) []*errors.QueryError
Validate validates the given query with the schema.
func (*Schema) ValidateWithVariables ¶ added in v0.0.7
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 ¶
type SchemaOpt func(*Schema)
SchemaOpt is an option to pass to ParseSchema or MustParseSchema.
func DirectiveFuncs ¶ added in v0.0.9
func DirectiveFuncs(dirFuncs map[string]types.DirectiveFunc) SchemaOpt
DirectiveFuncs allows to pass custom directive visitors that will be able to handle your GraphQL schema directives.
func DisableIntrospection ¶
func DisableIntrospection() SchemaOpt
DisableIntrospection disables introspection queries.
func Logger ¶
Logger is used to log panics during query execution. It defaults to exec.DefaultLogger.
func MaxDepth ¶
MaxDepth specifies the maximum field nesting depth in a query. The default is 0 which disables max depth checking.
func MaxParallelism ¶
MaxParallelism specifies the maximum number of resolvers per request allowed to run in parallel. The default is 10.
func PanicHandler ¶ added in v0.0.8
func PanicHandler(panicHandler errors.PanicHandler) SchemaOpt
PanicHandler is used to customize the panic errors during query execution. It defaults to errors.DefaultPanicHandler.
func SubscribeResolverTimeout ¶ added in v0.0.7
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 UseFieldResolvers ¶
func UseFieldResolvers() SchemaOpt
UseFieldResolvers specifies whether to use struct field resolvers
func UseStringDescriptions ¶
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 ¶
func ValidationTracer(tracer tracer.LegacyValidationTracer) SchemaOpt
ValidationTracer is used to trace validation errors. It defaults to tracer.LegacyNoopValidationTracer. Deprecated: context is needed to support tracing correctly. Use a Tracer which implements tracer.ValidationTracer.
type 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 ¶
ImplementsGraphQLType maps this custom Go type to the graphql scalar type in the schema.
func (Time) MarshalJSON ¶
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 ¶
UnmarshalGraphQL is a custom unmarshaler for Time
This function will be called whenever you use the time scalar as an input
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
example
|
|
caching/cache
Package 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.
|
Package 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. |
starwars
Package starwars provides a example schema and resolver based on Star Wars characters.
|
Package starwars provides a example schema and resolver based on Star Wars characters. |
internal
|
|
The trace package provides tracing functionality.
|
The trace package provides tracing functionality. |
noop
Package noop defines a no-op tracer implementation.
|
Package noop defines a no-op tracer implementation. |
Package types represents all types from the GraphQL specification in code.
|
Package types represents all types from the GraphQL specification in code. |