# README
graphql

Low-level GraphQL client for Go.
- Simple, familiar API
- Respects
context.Context
timeouts and cancellation - Build and execute any kind of GraphQL request
- Use strong Go types for response data
- Use variables and upload files
- Simple error handling
Installation
Make sure you have a working Go environment. To install graphql, simply run:
$ go get github.com/machinebox/graphql
Usage
import "context"
// create a client (safe to share across requests)
client := graphql.NewClient("https://machinebox.io/graphql")
// make a request
req := graphql.NewRequest(`
query ($key: String!) {
items (id:$key) {
field1
field2
field3
}
}
`)
// set any variables
req.Var("key", "value")
// set header fields
req.Header.Set("Cache-Control", "no-cache")
// define a Context for the request
ctx := context.Background()
// run it and capture the response
var respData ResponseStruct
if err := client.Run(ctx, req, &respData); err != nil {
log.Fatal(err)
}
File support via multipart form data
By default, the package will send a JSON body. To enable the sending of files, you can opt to
use multipart form data instead using the UseMultipartForm
option when you create your Client
:
client := graphql.NewClient("https://machinebox.io/graphql", graphql.UseMultipartForm())
For more information, read the godoc package documentation or the blog post.
Thanks
Thanks to Chris Broadfoot for design help.
# Packages
No description provided by the author
# Functions
ImmediatelyCloseReqBody will close the req body immediately after each request body is ready.
NewClient makes a new Client capable of making GraphQL requests.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
UseMultipartForm uses multipart/form-data and activates support for files.
WithHTTPClient specifies the underlying http.Client to use when making requests.
# Structs
No description provided by the author
No description provided by the author
No description provided by the author
Request is a GraphQL request.
No description provided by the author
No description provided by the author
No description provided by the author
Request is a GraphQL request.
Request is a GraphQL request.
Request is a GraphQL request.
No description provided by the author
# Interfaces
No description provided by the author
No description provided by the author
Request is a GraphQL request.
# Type aliases
No description provided by the author