Documentation ¶
Index ¶
- Variables
- type ID
- type Int64
- 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 DisableIntrospection() SchemaOpt
- func Logger(logger log.Logger) SchemaOpt
- func MaxDepth(n int) SchemaOpt
- func MaxParallelism(n int) SchemaOpt
- func SubscribeResolverTimeout(timeout time.Duration) SchemaOpt
- func Tracer(tracer trace.Tracer) SchemaOpt
- func UseFieldResolvers() SchemaOpt
- func UseStringDescriptions() SchemaOpt
- func ValidationTracer(tracer trace.ValidationTracer) SchemaOpt
- type Time
Constants ¶
This section is empty.
Variables ¶
var ( Int64WrongInputFormat = errors.New("Scalar.Int64: wrong input format, expected a signed 64-bit integers") Int64WrongInputType = errors.New("Scalar.Int64: wrong input type") )
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 Int64 ¶
type Int64 int
Int64 is the set of all signed 64-bit integers. Range: -9223372036854775808 through 9223372036854775807.
func (Int64) ImplementsGraphQLType ¶
func (Int64) MarshalJSON ¶
func (*Int64) UnmarshalGraphQL ¶
type NullBool ¶
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 ¶
func (*NullBool) UnmarshalGraphQL ¶
type NullFloat ¶
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 ¶
func (*NullFloat) UnmarshalGraphQL ¶
type NullInt ¶
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 ¶
func (*NullInt) UnmarshalGraphQL ¶
type NullString ¶
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 ¶
func (NullString) ImplementsGraphQLType(name string) bool
func (*NullString) Nullable ¶
func (s *NullString) Nullable()
func (*NullString) UnmarshalGraphQL ¶
func (s *NullString) UnmarshalGraphQL(input interface{}) error
type NullTime ¶
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 ¶
func (*NullTime) UnmarshalGraphQL ¶
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 ¶
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 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 SubscribeResolverTimeout ¶
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 trace.ValidationTracer) SchemaOpt
ValidationTracer is used to trace validation errors. It defaults to trace.NoopValidationTracer. Deprecated: context is needed to support tracing correctly. Use a Tracer which implements trace.ValidationTracerContext.
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
|
|
Package types represents all types from the GraphQL specification in code.
|
Package types represents all types from the GraphQL specification in code. |