Documentation
¶
Overview ¶
Package remote provides a simple and clean API for making HTTP requests to remote servers.
Package remote provides a simple and clean API for making HTTP requests to remote servers.
Index ¶
- Constants
- func DefaultClient() *http.Client
- type Option
- type Transaction
- func (t *Transaction) Accept(contentTypes ...string) *Transaction
- func (t *Transaction) Body(value string) *Transaction
- func (t *Transaction) Client(client *http.Client) *Transaction
- func (t *Transaction) ContentType(value string) *Transaction
- func (t *Transaction) Delete(url string) *Transaction
- func (t *Transaction) Error(object any) *Transaction
- func (t *Transaction) Form(name string, value string) *Transaction
- func (t *Transaction) Get(url string) *Transaction
- func (t *Transaction) Header(name string, value string) *Transaction
- func (t *Transaction) JSON(value any) *Transaction
- func (t *Transaction) MarshalJSON() ([]byte, error)
- func (t *Transaction) MarshalMap() map[string]any
- func (t *Transaction) Method(method string) *Transaction
- func (t *Transaction) Patch(url string) *Transaction
- func (t *Transaction) Post(url string) *Transaction
- func (t *Transaction) Put(url string) *Transaction
- func (t *Transaction) Query(name string, value string) *Transaction
- func (t *Transaction) RequestBody() ([]byte, error)
- func (t *Transaction) RequestURL() string
- func (t *Transaction) Response() *http.Response
- func (t *Transaction) ResponseBody() ([]byte, error)
- func (t *Transaction) ResponseBodyReader() io.Reader
- func (t *Transaction) ResponseContentType() string
- func (t *Transaction) ResponseHeader() http.Header
- func (t *Transaction) ResponseStatusCode() int
- func (t *Transaction) Result(object any) *Transaction
- func (t *Transaction) Send() error
- func (t *Transaction) URL(url string) *Transaction
- func (t *Transaction) UnmarshalJSON(data []byte) error
- func (t *Transaction) UnmarshalMap(value map[string]any) error
- func (t *Transaction) UserAgent(value string) *Transaction
- func (t *Transaction) With(options ...Option) *Transaction
- func (t *Transaction) XML(value any) *Transaction
Constants ¶
const Accept = "Accept"
Accept is the string used in the HTTP header to request a response be encoded as a MIME type
const ContentType = "Content-Type"
ContentType is the string used in the HTTP header to designate a MIME type
const ContentTypeActivityPub = "application/activity+json"
ContentTypeActivityPub is the standard MIME type for ActivityPub content
const ContentTypeAtomXML = "application/atom+xml"
ContentTypeAtomXML is the standard MIME Type for an Atom RSS feed
const ContentTypeForm = "application/x-www-form-urlencoded"
ContentTypeForm is the standard MIME Type for Form encoded content
const ContentTypeHTML = "text/html"
ContentTypeHTML is the standard MIME type for HTML content
const ContentTypeJSON = "application/json"
ContentTypeJSON is the standard MIME Type for JSON content
const ContentTypeJSONFeed = "application/feed+json"
ContentTypeJSONFeed is the standard MIME Type for JSON Feed content https://en.wikipedia.org/wiki/JSON_Feed
const ContentTypeJSONLD = "application/ld+json"
ContentTypeJSONLD is the standard MIME Type for JSON-LD content https://en.wikipedia.org/wiki/JSON-LD
const ContentTypeJSONResourceDescriptor = "application/jrd+json"
ContentTypeJSONResourceDescriptor is the standard MIME Type for JSON Resource Descriptor content which is used by WebFinger: https://datatracker.ietf.org/doc/html/rfc7033#section-10.2
const ContentTypePlain = "text/plain"
ContentTypePlain is the default plaintext MIME type
const ContentTypeRSSXML = "application/rss+xml"
ContentTypeRSSXML is the standard MIME Type for a RSS feed
const ContentTypeXML = "application/xml"
ContentTypeXML is the standard MIME Type for XML content
const UserAgent = "User-Agent"
UserAgent is the string used in the HTTP header to identify the client making the request
Variables ¶
This section is empty.
Functions ¶
func DefaultClient ¶ added in v0.16.0
DefaultClient returns an HTTP client with a reasonable timeout.
Types ¶
type Option ¶ added in v0.12.0
type Option struct {
// BeforeRequest is called before an http.Request is generated. It can be used to
// modify Transaction values before they are assembled into an http.Request object.
BeforeRequest func(*Transaction) error
// ModifyRequest is called after an http.Request has been generated, but before it is sent to the
// remote server. It can be used to modify the request, or to replace it entirely.
// If it returns a non-nil http.Response, then that is used INSTEAD OF calling the remote server.
// If it returns a nil http.Response, then the request is sent to the remote server as normal.
ModifyRequest func(*Transaction, *http.Request) *http.Response
// AfterRequest is executed after an http.Response has been received from the remote server, but before it is
// parsed and returned to the calling application.
AfterRequest func(*Transaction, *http.Response) error
}
Option is a decorator that can modify the request before it is sent to the remote HTTP server, or modify the response after it is returned by the remote HTTP server.
type Transaction ¶
type Transaction struct {
// contains filtered or unexported fields
}
Transaction represents a single HTTP request/response to a remote HTTP server.
func Delete ¶
func Delete(url string) *Transaction
Delete creates a new HTTP request to the designated URL, using the DELETE method.
func Get ¶
func Get(url string) *Transaction
Get creates a new HTTP request to the designated URL, using the GET method
func New ¶ added in v0.16.0
func New() *Transaction
New returns a fully initialized Transaction object with default settings.
func Patch ¶
func Patch(url string) *Transaction
Patch creates a new HTTP request to the designated URL, using the PATCH method
func Post ¶
func Post(url string) *Transaction
Post creates a new HTTP request to the designated URL, using the POST method
func Put ¶
func Put(url string) *Transaction
Put creates a new HTTP request to the designated URL, using the PUT method
func (*Transaction) Accept ¶ added in v0.10.1
func (t *Transaction) Accept(contentTypes ...string) *Transaction
Accept sets the Content-Type header of the HTTP request.
func (*Transaction) Body ¶
func (t *Transaction) Body(value string) *Transaction
Body sets the request body, to be encoded as plain text
func (*Transaction) Client ¶
func (t *Transaction) Client(client *http.Client) *Transaction
Client sets the HTTP client to use for the transaction.
func (*Transaction) ContentType ¶
func (t *Transaction) ContentType(value string) *Transaction
ContentType sets the Content-Type header of the HTTP request.
func (*Transaction) Delete ¶ added in v0.16.0
func (t *Transaction) Delete(url string) *Transaction
Delete assigns the HTTP method and URL for this transaction.
func (*Transaction) Error ¶ added in v0.12.0
func (t *Transaction) Error(object any) *Transaction
Error sets the object for parsing HTTP error responses
func (*Transaction) Form ¶
func (t *Transaction) Form(name string, value string) *Transaction
Form adds a name/value pair to the form data to be sent to the remote server.
func (*Transaction) Get ¶ added in v0.16.0
func (t *Transaction) Get(url string) *Transaction
Get assigns the HTTP method and URL for this transaction.
func (*Transaction) Header ¶
func (t *Transaction) Header(name string, value string) *Transaction
Header sets a designated header value in the HTTP request.
func (*Transaction) JSON ¶
func (t *Transaction) JSON(value any) *Transaction
JSON sets the request body, to be encoded as JSON.
func (*Transaction) MarshalJSON ¶ added in v0.16.3
func (t *Transaction) MarshalJSON() ([]byte, error)
MarshalJSON implements the json.Marhsaller interface, which writes the Transaction object to a JSON string.
func (*Transaction) MarshalMap ¶ added in v0.16.3
func (t *Transaction) MarshalMap() map[string]any
MarshalMap converts a Transaction object into a map[string]any
func (*Transaction) Method ¶
func (t *Transaction) Method(method string) *Transaction
Method assigns the HTTP method for this transaction.
func (*Transaction) Patch ¶ added in v0.16.0
func (t *Transaction) Patch(url string) *Transaction
Patch assigns the HTTP method and URL for this transaction.
func (*Transaction) Post ¶ added in v0.16.0
func (t *Transaction) Post(url string) *Transaction
Post assigns the HTTP method and URL for this transaction.
func (*Transaction) Put ¶ added in v0.16.0
func (t *Transaction) Put(url string) *Transaction
Put assigns the HTTP method and URL for this transaction.
func (*Transaction) Query ¶
func (t *Transaction) Query(name string, value string) *Transaction
Query sets a name/value pair in the URL query string.
func (*Transaction) RequestBody ¶ added in v0.12.0
func (t *Transaction) RequestBody() ([]byte, error)
RequestBody returns the serialized body of the request as a slice of bytes.
func (*Transaction) RequestURL ¶ added in v0.12.0
func (t *Transaction) RequestURL() string
RequestURL returns the full URL for this request, including query string parameters.
func (*Transaction) Response ¶
func (t *Transaction) Response() *http.Response
Response returns the original HTTP response object.
func (*Transaction) ResponseBody ¶ added in v0.12.0
func (t *Transaction) ResponseBody() ([]byte, error)
ResponseBody returns the original response body, as a byte array. This method replaces the original body reader, meaning that it can be called multiple times without error.
func (*Transaction) ResponseBodyReader ¶ added in v0.12.0
func (t *Transaction) ResponseBodyReader() io.Reader
ResponseBodyReader returns an io.Reader for the response body.
func (*Transaction) ResponseContentType ¶ added in v0.12.0
func (t *Transaction) ResponseContentType() string
ResponseContentType returns the Content-Type header of the response.
func (*Transaction) ResponseHeader ¶ added in v0.12.0
func (t *Transaction) ResponseHeader() http.Header
ResponseHeader returns the HTTP response header.
func (*Transaction) ResponseStatusCode ¶ added in v0.12.0
func (t *Transaction) ResponseStatusCode() int
ResponseStatusCode returns the HTTP status code of the response.
func (*Transaction) Result ¶ added in v0.12.0
func (t *Transaction) Result(object any) *Transaction
Result sets the object for parsing HTTP success responses
func (*Transaction) Send ¶
func (t *Transaction) Send() error
Send executes the transaction, sending the request to the remote server.
func (*Transaction) URL ¶ added in v0.16.3
func (t *Transaction) URL(url string) *Transaction
URL assigns the URL for this transaction.
func (*Transaction) UnmarshalJSON ¶ added in v0.16.3
func (t *Transaction) UnmarshalJSON(data []byte) error
UnmarshalJSON implements the json.Unmarshaler interface, which reads a Transaction object from a JSON string.
func (*Transaction) UnmarshalMap ¶ added in v0.16.3
func (t *Transaction) UnmarshalMap(value map[string]any) error
UnmarshalMap populates a Transaction object from a map[string]any
func (*Transaction) UserAgent ¶ added in v0.12.0
func (t *Transaction) UserAgent(value string) *Transaction
UserAgent sets the User-Agent header of the HTTP request.
func (*Transaction) With ¶ added in v0.16.0
func (t *Transaction) With(options ...Option) *Transaction
With lets you add remote.Options to the transaction. Options modify transaction data before and after it is sent to the remote server.
func (*Transaction) XML ¶
func (t *Transaction) XML(value any) *Transaction
XML sets the request body, to be encoded as XML.