Documentation ¶
Index ¶
- type Client
- func (p *Client) MustPost(query string, response interface{}, options ...Option)
- func (p *Client) Post(query string, response interface{}, options ...Option) error
- func (p *Client) RawPost(query string, options ...Option) (*Response, error)
- func (p *Client) SSE(ctx context.Context, query string, options ...Option) *SSE
- func (p *Client) SetCustomDecodeConfig(dc *mapstructure.DecoderConfig)
- func (p *Client) Websocket(query string, options ...Option) *Subscription
- func (p *Client) WebsocketOnce(query string, resp interface{}, options ...Option) error
- func (p *Client) WebsocketWithPayload(query string, initPayload map[string]interface{}, options ...Option) *Subscription
- type Option
- func AddCookie(cookie *http.Cookie) Option
- func AddHeader(key string, value string) Option
- func BasicAuth(username, password string) Option
- func Extensions(extensions map[string]interface{}) Option
- func Operation(name string) Option
- func Path(url string) Option
- func Var(name string, value interface{}) Option
- func WithFiles() Option
- type RawJsonError
- type Request
- type Response
- type SSE
- type SSEResponse
- type Subscription
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client used for testing GraphQL servers. Not for production use.
func New ¶
New creates a graphql client Options can be set that should be applied to all requests made with this client
func (*Client) MustPost ¶
MustPost is a convenience wrapper around Post that automatically panics on error
func (*Client) Post ¶
Post sends a http POST request to the graphql endpoint with the given query then unpacks the response into the given object.
func (*Client) RawPost ¶ added in v0.6.0
RawPost is similar to Post, except it skips decoding the raw json response unpacked onto Response. This is used to test extension keys which are not available when using Post.
func (*Client) SetCustomDecodeConfig ¶ added in v0.17.45
func (p *Client) SetCustomDecodeConfig(dc *mapstructure.DecoderConfig)
SetCustomDecodeConfig sets a custom decode hook for the client
func (*Client) Websocket ¶
func (p *Client) Websocket(query string, options ...Option) *Subscription
func (*Client) WebsocketOnce ¶ added in v0.17.45
Grab a single response from a websocket based query
func (*Client) WebsocketWithPayload ¶ added in v0.6.0
func (p *Client) WebsocketWithPayload(query string, initPayload map[string]interface{}, options ...Option) *Subscription
type Option ¶
type Option func(bd *Request)
Option implements a visitor that mutates an outgoing GraphQL request
This is the Option pattern - https://dave.cheney.net/2014/10/17/functional-options-for-friendly-apis
func AddHeader ¶ added in v0.17.45
AddHeader adds a header to the outgoing request. This is useful for setting expected Authentication headers for example.
func Extensions ¶ added in v0.17.45
Extensions sets the extensions to be sent with the outgoing request
func Path ¶ added in v0.17.45
Path sets the url that this request will be made against, useful if you are mounting your entire router and need to specify the url to the graphql endpoint.
type RawJsonError ¶
type RawJsonError struct {
json.RawMessage
}
RawJsonError is a json formatted error from a GraphQL server.
func (RawJsonError) Error ¶
func (r RawJsonError) Error() string
type Request ¶
type Request struct { Query string `json:"query"` Variables map[string]interface{} `json:"variables,omitempty"` OperationName string `json:"operationName,omitempty"` Extensions map[string]interface{} `json:"extensions,omitempty"` HTTP *http.Request `json:"-"` }
Request represents an outgoing GraphQL request
type Response ¶ added in v0.17.45
type Response struct { Data interface{} Errors json.RawMessage Extensions map[string]interface{} }
Response is a GraphQL layer response from a handler.
type SSEResponse ¶ added in v0.17.45
type SSEResponse struct { Data interface{} `json:"data"` Label string `json:"label"` Path []interface{} `json:"path"` HasNext bool `json:"hasNext"` Errors json.RawMessage `json:"errors"` Extensions map[string]interface{} `json:"extensions"` }