Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client interface { // MakeRequest must make a request to the client's GraphQL API. // // ctx is the context that should be used to make this request. If context // is disabled in the genqlient settings, this will be set to // context.Background(). // // query is the literal string representing the GraphQL query, e.g. // `query myQuery { myField }`. variables contains a JSON-marshalable // value containing the variables to be sent along with the query, // or may be nil if there are none. Typically, GraphQL APIs will // accept a JSON payload of the form // {"query": "query myQuery { ... }", "variables": {...}}` // but MakeRequest may use some other transport, handle extensions, or set // other parameters, if it wishes. // // retval is a pointer to the struct representing the query result, e.g. // new(myQueryResponse). Typically, GraphQL APIs will return a JSON // payload of the form // {"data": {...}, "errors": {...}} // and retval is designed so that `data` will json-unmarshal into `retval`. // (Errors are returned.) But again, MakeRequest may customize this. MakeRequest( ctx context.Context, opName string, query string, retval, input interface{}, ) error }
Client is the interface that the generated code calls into to actually make requests.
Unstable: This interface is likely to change before v1.0, see #19. Creating a client with NewClient will remain the same.
func NewClient ¶
NewClient returns a Client which makes requests to the given endpoint, suitable for most users.
The client makes POST requests to the given GraphQL endpoint using standard GraphQL HTTP-over-JSON transport. It will use the given http client, or http.DefaultClient if a nil client is passed.
The typical method of adding authentication headers is to wrap the client's Transport to add those headers. See example/caller.go for an example.
type Doer ¶
Doer encapsulates the methods from *http.Client needed by Client. The methods should have behavior to match that of *http.Client (or mocks for the same).
type NoMarshalJSON ¶
type NoMarshalJSON struct{}
NoMarshalJSON is intended for the use of genqlient's generated code only.
It is used to prevent a struct type from inheriting its embed's MarshalJSON method, so if we construct a type:
type T struct { E; NoMarshalJSON }
where E has an MarshalJSON method, T will not inherit it, per the Go selector rules: https://golang.org/ref/spec#Selectors.
func (NoMarshalJSON) MarshalJSON ¶
func (NoMarshalJSON) MarshalJSON() ([]byte, error)
MarshalJSON should never be called; it exists only to prevent a sibling MarshalJSON method from being promoted.
type NoUnmarshalJSON ¶
type NoUnmarshalJSON struct{}
NoUnmarshalJSON is intended for the use of genqlient's generated code only.
It is used to prevent a struct type from inheriting its embed's UnmarshalJSON method, so if we construct a type:
type T struct { E; NoUnmarshalJSON }
where E has an UnmarshalJSON method, T will not inherit it, per the Go selector rules: https://golang.org/ref/spec#Selectors.
func (NoUnmarshalJSON) UnmarshalJSON ¶
func (NoUnmarshalJSON) UnmarshalJSON(b []byte) error
UnmarshalJSON should never be called; it exists only to prevent a sibling UnmarshalJSON method from being promoted.