Affjax
- Package
- purescript-affjax
- Repository
- slamdata/purescript-affjax
#Request Source
type Request a = { content :: Maybe RequestBody, headers :: Array RequestHeader, method :: Either Method CustomMethod, password :: Maybe String, responseFormat :: ResponseFormat a, url :: URL, username :: Maybe String, withCredentials :: Boolean }A record that contains all the information to perform an HTTP request.
Instead of constructing the record from scratch it is often easier to build
one based on defaultRequest.
#defaultRequest Source
defaultRequest :: Request UnitA record of the type Request that has all fields set to default
values. This record can be used as the foundation for constructing
custom requests.
As an example:
defaultRequest { url = "/api/user", method = Left POST }
Would represents a POST request to the URL /api/user.
#Response Source
type Response a = { body :: a, headers :: Array ResponseHeader, status :: StatusCode, statusText :: String }The type of records that represents a received HTTP response.
#request Source
request :: forall a. Request a -> Aff (Response (Either ResponseFormatError a))Makes an HTTP request.
The example below performs a GET request to the URL /resource and
interprets the response body as JSON.
import Affjax.ResponseFormat (json)
...
request (defaultRequest { url = "/resource", method = Left GET, responseFormat = json})
For common cases helper functions can often be used instead of request .
For instance, the above example is equivalent to the following.
get json "/resource"
#get Source
get :: forall a. ResponseFormat a -> URL -> Aff (Response (Either ResponseFormatError a))Makes a GET request to the specified URL.
#post Source
post :: forall a. ResponseFormat a -> URL -> RequestBody -> Aff (Response (Either ResponseFormatError a))Makes a POST request to the specified URL, sending data.
#post' Source
post' :: forall a. ResponseFormat a -> URL -> Maybe RequestBody -> Aff (Response (Either ResponseFormatError a))Makes a POST request to the specified URL with the option to send data.
#put Source
put :: forall a. ResponseFormat a -> URL -> RequestBody -> Aff (Response (Either ResponseFormatError a))Makes a PUT request to the specified URL, sending data.
#put' Source
put' :: forall a. ResponseFormat a -> URL -> Maybe RequestBody -> Aff (Response (Either ResponseFormatError a))Makes a PUT request to the specified URL with the option to send data.
#delete Source
delete :: forall a. ResponseFormat a -> URL -> Aff (Response (Either ResponseFormatError a))Makes a DELETE request to the specified URL.
#patch Source
patch :: forall a. ResponseFormat a -> URL -> RequestBody -> Aff (Response (Either ResponseFormatError a))Makes a PATCH request to the specified URL, sending data.
#patch' Source
patch' :: forall a. ResponseFormat a -> URL -> Maybe RequestBody -> Aff (Response (Either ResponseFormatError a))Makes a PATCH request to the specified URL with the option to send data.
#RetryDelayCurve Source
type RetryDelayCurve = Int -> MillisecondsA sequence of retry delays, in milliseconds.
#RetryPolicy Source
type RetryPolicy = { delayCurve :: RetryDelayCurve, shouldRetryWithStatusCode :: StatusCode -> Boolean, timeout :: Maybe Milliseconds }Expresses a policy for retrying HTTP requests with backoff.
#defaultRetryPolicy Source
defaultRetryPolicy :: RetryPolicyA sensible default for retries: no timeout, maximum delay of 30s, initial delay of 0.1s, exponential backoff, and no status code triggers a retry.
Re-exports from Affjax.ResponseFormat
#ResponseFormatError Source
data ResponseFormatErrorUsed when an error occurs when attempting to decode into a particular response format. The error that occurred when decoding is included, along with the value that decoding was attempted on.