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
