Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Handler ¶
Handler is the middleware function that retrieves the incoming HTTP request and in case it is a POST and multipart/form-data request, re-maps the field values given in the GraphQL format and saves uploaded files.
Here is how to implement the middleware handler (see upload.Handler use below):
h := handler.GraphQL{ Schema: graphql.MustParseSchema(schema.String(), root, graphql.MaxParallelism(maxParallelism), graphql.MaxDepth(maxDepth)), Handler: handler.NewHandler(conf, &m), } mux := mux.NewRouter() mux.Handle("/graphql", upload.Handler(h)) s := &http.Server{ Addr: ":8000", Handler: mux, }
Types ¶
type GraphQLUpload ¶
type GraphQLUpload struct { Filename string `json:"filename"` MIMEType string `json:"mimetype"` Filepath string `json:"filepath"` }
GraphQLUpload is the struct used for the new "Upload" GraphQL scalar type
It allows you to use the Upload type in your GraphQL schema, this way:
scalar Upload type Mutation { upload(file: Upload!, title: String!, description: String!): Boolean }
func (*GraphQLUpload) GetReader ¶
func (u *GraphQLUpload) GetReader() (io.Reader, error)
GetReader returns the buffer of the uploaded (and temporary saved) file.
func (GraphQLUpload) ImplementsGraphQLType ¶
func (u GraphQLUpload) ImplementsGraphQLType(name string) bool
ImplementsGraphQLType is implemented to respect the GraphQL-Go Unmarshaler interface. It allows to chose the name of the GraphQL scalar type you want to implement
func (*GraphQLUpload) UnmarshalGraphQL ¶
func (u *GraphQLUpload) UnmarshalGraphQL(input interface{}) error
UnmarshalGraphQL is implemented to respect the GraphQL-Go Unmarshaler interface. It hydrates the GraphQLUpload struct with input data