Simple low-level GraphQL HTTP client for Go
See the code
Low-level GraphQL client for Go.
context.Context timeouts and cancellationMake sure you have a working Go environment. To install graphql, simply run:
$ go get github.com/machinebox/graphql
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)
}
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 to Chris Broadfoot for design help.
Overall
Maintained
Code review
Go module
Latest release
Releases this year
813 followers · starred Jun 2020
1,585 followers · starred Jun 2021
71 followers · starred Apr 2021
435 followers · starred May 2019
Simple low-level GraphQL HTTP client for Go
See the code
Low-level GraphQL client for Go.
context.Context timeouts and cancellationMake sure you have a working Go environment. To install graphql, simply run:
$ go get github.com/machinebox/graphql
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)
}
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 to Chris Broadfoot for design help.
Overall
Maintained
Code review
Go module
Latest release
Releases this year
813 followers · starred Jun 2020
1,585 followers · starred Jun 2021
71 followers · starred Apr 2021
435 followers · starred May 2019