Add GraphQL Extensions (#184)

This enables accessing the Extensions field, as defined in the response
format: https://spec.graphql.org/October2021/#sec-Response-Format

Extensions can be enabled using configuration option use_extensions.
This will change the return parameters of the generated client
functions. Making it a breaking change if enabled.

Since extensions are untyped as defined in the spec, the Client will
return an interface of type map[string]interface{}.
This commit is contained in:
Jan-Hendrik Boll
2022-03-30 13:48:01 -07:00
committed by GitHub
parent e81d19c8be
commit b2422452a1
63 changed files with 1792 additions and 951 deletions
+33 -23
View File
@@ -75,16 +75,9 @@ func getUser(
client graphql.Client,
Login string,
) (*getUserResponse, error) {
__input := __getUserInput{
Login: Login,
}
var err error
var retval getUserResponse
err = client.MakeRequest(
ctx,
"getUser",
`
req := &graphql.Request{
OpName: "getUser",
Query: `
query getUser ($Login: String!) {
user(login: $Login) {
theirName: name
@@ -92,23 +85,31 @@ query getUser ($Login: String!) {
}
}
`,
&retval,
&__input,
Variables: &__getUserInput{
Login: Login,
},
}
var err error
var data getUserResponse
resp := &graphql.Response{Data: &data}
err = client.MakeRequest(
ctx,
req,
resp,
)
return &retval, err
return &data, err
}
func getViewer(
ctx context.Context,
client graphql.Client,
) (*getViewerResponse, error) {
var err error
var retval getViewerResponse
err = client.MakeRequest(
ctx,
"getViewer",
`
req := &graphql.Request{
OpName: "getViewer",
Query: `
query getViewer {
viewer {
MyName: name
@@ -116,8 +117,17 @@ query getViewer {
}
}
`,
&retval,
nil,
}
var err error
var data getViewerResponse
resp := &graphql.Response{Data: &data}
err = client.MakeRequest(
ctx,
req,
resp,
)
return &retval, err
return &data, err
}