Documentation ¶
Overview ¶
Package httputil provides abstractions around the common needs of HTTP. It also allows swapping in and out the HTTP client.
Index ¶
- Constants
- Variables
- func JSONRequest(r httpdriver.Request) error
- func MultipartRequest(r httpdriver.Request) error
- type Client
- func (c *Client) Context() context.Context
- func (c *Client) Copy() *Client
- func (c *Client) FastRequest(method, url string, opts ...RequestOption) error
- func (c *Client) MeanwhileMultipart(writer func(*multipart.Writer) error, method, url string, ...) (httpdriver.Response, error)
- func (c *Client) Request(method, url string, opts ...RequestOption) (httpdriver.Response, error)
- func (c *Client) RequestJSON(to interface{}, method, url string, opts ...RequestOption) error
- func (c *Client) WithContext(ctx context.Context) *Client
- type DefaultSchema
- type ErrorCode
- type HTTPError
- type JSONError
- type RequestError
- type RequestOption
- func PrependOptions(opts []RequestOption, prepend ...RequestOption) []RequestOption
- func WithBody(body io.ReadCloser) RequestOption
- func WithContentType(ctype string) RequestOption
- func WithHeaders(headers http.Header) RequestOption
- func WithJSONBody(v interface{}) RequestOption
- func WithSchema(schema SchemaEncoder, v interface{}) RequestOption
- type ResponseFunc
- type SchemaEncoder
Constants ¶
View Source
const StatusTooManyRequests = 429
StatusTooManyRequests is the HTTP status code discord sends on rate-limiting.
Variables ¶
View Source
var Retries uint = 5
Retries is the default attempts to retry if the API returns an error before giving up. If the value is smaller than 1, then requests will retry forever.
Functions ¶
func JSONRequest ¶
func JSONRequest(r httpdriver.Request) error
func MultipartRequest ¶
func MultipartRequest(r httpdriver.Request) error
Types ¶
type Client ¶
type Client struct { httpdriver.Client SchemaEncoder // OnRequest, if not nil, will be copied and prefixed on each Request. OnRequest []RequestOption // OnResponse is called after every Do() call. Response might be nil if Do() // errors out. The error returned will override Do's if it's not nil. OnResponse []ResponseFunc // Default to the global Retries variable (5). Retries uint // contains filtered or unexported fields }
func (*Client) Context ¶ added in v0.6.0
Context is a shared context for all future calls. It's Background by default.
func (*Client) FastRequest ¶
func (c *Client) FastRequest(method, url string, opts ...RequestOption) error
func (*Client) MeanwhileMultipart ¶
func (c *Client) MeanwhileMultipart( writer func(*multipart.Writer) error, method, url string, opts ...RequestOption) (httpdriver.Response, error)
func (*Client) Request ¶
func (c *Client) Request(method, url string, opts ...RequestOption) (httpdriver.Response, error)
func (*Client) RequestJSON ¶
func (c *Client) RequestJSON(to interface{}, method, url string, opts ...RequestOption) error
type DefaultSchema ¶
type HTTPError ¶
type RequestError ¶
type RequestError struct {
// contains filtered or unexported fields
}
func (RequestError) Error ¶ added in v0.6.0
func (r RequestError) Error() string
func (RequestError) Unwrap ¶ added in v0.6.0
func (r RequestError) Unwrap() error
type RequestOption ¶
type RequestOption func(httpdriver.Request) error
func PrependOptions ¶ added in v0.4.0
func PrependOptions(opts []RequestOption, prepend ...RequestOption) []RequestOption
func WithBody ¶
func WithBody(body io.ReadCloser) RequestOption
func WithContentType ¶
func WithContentType(ctype string) RequestOption
func WithHeaders ¶ added in v0.3.2
func WithHeaders(headers http.Header) RequestOption
func WithJSONBody ¶
func WithJSONBody(v interface{}) RequestOption
WithJSONBody inserts a JSON body into the request. This ignores JSON errors.
func WithSchema ¶
func WithSchema(schema SchemaEncoder, v interface{}) RequestOption
type ResponseFunc ¶ added in v0.6.0
type ResponseFunc func(httpdriver.Request, httpdriver.Response) error
type SchemaEncoder ¶
SchemaEncoder expects the encoder to read the "schema" tags.
Directories ¶
Path | Synopsis |
---|---|
Package httpdriver provides interfaces and implementations of a simple HTTP client.
|
Package httpdriver provides interfaces and implementations of a simple HTTP client. |
Click to show internal directories.
Click to hide internal directories.