handler

package
v1.0.27 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 12, 2019 License: MIT Imports: 27 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultCacheSize = 1000
View Source
const DefaultConnectionKeepAlivePingInterval = 25 * time.Second
View Source
const DefaultUploadMaxMemory = 32 << 20

DefaultUploadMaxMemory is the maximum number of bytes used to parse a request body as multipart/form-data in memory, with the remainder stored on disk in temporary files.

View Source
const DefaultUploadMaxSize = 32 << 20

DefaultUploadMaxSize is maximum number of bytes used to parse a request body as multipart/form-data.

Variables

This section is empty.

Functions

func GraphQL

func GraphQL(exec graphql.ExecutableSchema, options ...Option) http.HandlerFunc

func Playground

func Playground(title string, endpoint string) http.HandlerFunc

Types

type Config

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

type InitPayload

type InitPayload map[string]interface{}

InitPayload is a structure that is parsed from the websocket init message payload. TO use request headers for non-websocket, instead wrap the graphql handler in a middleware.

func GetInitPayload

func GetInitPayload(ctx context.Context) InitPayload

GetInitPayload gets a map of the data sent with the connection_init message, which is used by graphql clients as a stand-in for HTTP headers.

func (InitPayload) Authorization

func (payload InitPayload) Authorization() string

Authorization is a short hand for getting the Authorization header from the payload.

func (InitPayload) GetString

func (payload InitPayload) GetString(key string) string

GetString safely gets a string value from the payload. It returns an empty string if the payload is nil or the value isn't set.

type Option

type Option func(cfg *Config)

func CacheSize

func CacheSize(size int) Option

CacheSize sets the maximum size of the query cache. If size is less than or equal to 0, the cache is disabled.

func ComplexityLimit

func ComplexityLimit(limit int) Option

ComplexityLimit sets a maximum query complexity that is allowed to be executed. If a query is submitted that exceeds the limit, a 422 status code will be returned.

func ComplexityLimitFunc

func ComplexityLimitFunc(complexityLimitFunc graphql.ComplexityLimitFunc) Option

ComplexityLimitFunc allows you to define a function to dynamically set the maximum query complexity that is allowed to be executed. If a query is submitted that exceeds the limit, a 422 status code will be returned.

func EnablePersistedQueryCache

func EnablePersistedQueryCache(cache PersistedQueryCache) Option

Add cache that will hold queries for automatic persisted queries (APQ)

func ErrorPresenter

func ErrorPresenter(f graphql.ErrorPresenterFunc) Option

ErrorPresenter transforms errors found while resolving into errors that will be returned to the user. It provides a good place to add any extra fields, like error.type, that might be desired by your frontend. Check the default implementation in graphql.DefaultErrorPresenter for an example.

func IntrospectionEnabled

func IntrospectionEnabled(enabled bool) Option

IntrospectionEnabled = false will forbid clients from calling introspection endpoints. Can be useful in prod when you dont want clients introspecting the full schema.

func RecoverFunc

func RecoverFunc(recover graphql.RecoverFunc) Option

func RequestMiddleware

func RequestMiddleware(middleware graphql.RequestMiddleware) Option

RequestMiddleware allows you to define a function that will be called around the root request, after the query has been parsed. This is useful for logging

func ResolverMiddleware

func ResolverMiddleware(middleware graphql.FieldMiddleware) Option

ResolverMiddleware allows you to define a function that will be called around every resolver, useful for logging.

func Tracer

func Tracer(tracer graphql.Tracer) Option

Tracer allows you to add a request/resolver tracer that will be called around the root request, calling resolver. This is useful for tracing

func UploadMaxMemory

func UploadMaxMemory(size int64) Option

UploadMaxMemory sets the maximum number of bytes used to parse a request body as multipart/form-data in memory, with the remainder stored on disk in temporary files.

func UploadMaxSize

func UploadMaxSize(size int64) Option

UploadMaxSize sets the maximum number of bytes used to parse a request body as multipart/form-data.

func WebsocketInitFunc

func WebsocketInitFunc(websocketInitFunc websocketInitFunc) Option

WebsocketInitFunc is called when the server receives connection init message from the client. This can be used to check initial payload to see whether to accept the websocket connection.

func WebsocketKeepAliveDuration

func WebsocketKeepAliveDuration(duration time.Duration) Option

WebsocketKeepAliveDuration allows you to reconfigure the keepalive behavior. By default, keepalive is enabled with a DefaultConnectionKeepAlivePingInterval duration. Set handler.connectionKeepAlivePingInterval = 0 to disable keepalive altogether.

func WebsocketUpgrader

func WebsocketUpgrader(upgrader websocket.Upgrader) Option

type PersistedQueryCache

type PersistedQueryCache interface {
	Add(ctx context.Context, hash string, query string)
	Get(ctx context.Context, hash string) (string, bool)
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL