Execute makes a request with the given context, method, URL, request params,.
func (
r *Client) Execute(ctx context.Context,
method string,
path string,
params interface{},
res interface{},
opts ...option.RequestOption
) errorExecute makes a request with the given context, method, URL, request params, response, and request options. This is useful for hitting undocumented endpoints while retaining the base URL, auth, retries, and other options from the client.
If a byte slice or an [io.Reader] is supplied to params, it will be used as-is for the request body.
The params is by default serialized into the body using [encoding/json]. If your type implements a MarshalJSON function, it will be used instead to serialize the request. If a URLQuery method is implemented, the returned [url.Values] will be used as query strings to the url.
If your params struct uses [param.Field], you must provide either [MarshalJSON], [URLQuery], and/or [MarshalForm] functions. It is undefined behavior to use a struct uses [param.Field] without specifying how it is serialized.
Any "…Params" object defined in this library can be used as the request argument. Note that 'path' arguments will not be forwarded into the url.
The response body will be deserialized into the res variable, depending on its type:
For even greater flexibility, see [option.WithResponseInto] and [option.WithResponseBodyInto].
| Name | Type | Description |
|---|---|---|
ctx* | context.Context | |
method* | string | |
path* | string | |
params* | interface{} | |
res* | interface{} | |
opts* | ...option.RequestOption |