diff options
Diffstat (limited to 'vendor/github.com/graphql-go/handler/README.md')
-rw-r--r-- | vendor/github.com/graphql-go/handler/README.md | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/vendor/github.com/graphql-go/handler/README.md b/vendor/github.com/graphql-go/handler/README.md new file mode 100644 index 00000000..a6986c5e --- /dev/null +++ b/vendor/github.com/graphql-go/handler/README.md @@ -0,0 +1,79 @@ +# graphql-go-handler [![Build Status](https://travis-ci.org/graphql-go/handler.svg)](https://travis-ci.org/graphql-go/handler) [![GoDoc](https://godoc.org/graphql-go/handler?status.svg)](https://godoc.org/github.com/graphql-go/handler) [![Coverage Status](https://coveralls.io/repos/graphql-go/handler/badge.svg?branch=master&service=github)](https://coveralls.io/github/graphql-go/handler?branch=master) [![Join the chat at https://gitter.im/graphql-go/graphql](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/graphql-go/graphql?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + +Golang HTTP.Handler for [graphl-go](https://github.com/graphql-go/graphql) + +### Notes: +This is based on alpha version of `graphql-go` and `graphql-relay-go`. +Be sure to watch both repositories for latest changes. + +### Usage + +```go +package main + +import ( + "net/http" + "github.com/graphql-go/handler" +) + +func main() { + + // define GraphQL schema using relay library helpers + schema := graphql.NewSchema(...) + + h := handler.New(&handler.Config{ + Schema: &schema, + Pretty: true, + GraphiQL: true, + }) + + // serve HTTP + http.Handle("/graphql", h) + http.ListenAndServe(":8080", nil) +} +``` + +### Details + +The handler will accept requests with +the parameters: + + * **`query`**: A string GraphQL document to be executed. + + * **`variables`**: The runtime values to use for any GraphQL query variables + as a JSON object. + + * **`operationName`**: If the provided `query` contains multiple named + operations, this specifies which operation should be executed. If not + provided, an 400 error will be returned if the `query` contains multiple + named operations. + +GraphQL will first look for each parameter in the URL's query-string: + +``` +/graphql?query=query+getUser($id:ID){user(id:$id){name}}&variables={"id":"4"} +``` + +If not found in the query-string, it will look in the POST request body. +The `handler` will interpret it +depending on the provided `Content-Type` header. + + * **`application/json`**: the POST body will be parsed as a JSON + object of parameters. + + * **`application/x-www-form-urlencoded`**: this POST body will be + parsed as a url-encoded string of key-value pairs. + + * **`application/graphql`**: The POST body will be parsed as GraphQL + query string, which provides the `query` parameter. + + +### Examples +- [golang-graphql-playground](https://github.com/graphql-go/playground) +- [golang-relay-starter-kit](https://github.com/sogko/golang-relay-starter-kit) +- [todomvc-relay-go](https://github.com/sogko/todomvc-relay-go) + +### Test +```bash +$ go get github.com/graphql-go/handler +$ go build && go test ./... |