Extra helpers for more easily building Http requests that require greater
configuration than what is provided by elm-http out of the box.
Start building a GET request with a given URL
get "https://example.com/api/items/1"Start building a POST request with a given URL
post "https://example.com/api/items"Start building a PUT request with a given URL
put "https://example.com/api/items/1"Start building a PATCH request with a given URL
patch "https://example.com/api/items/1"Start building a DELETE request with a given URL
delete "https://example.com/api/items/1"Start building a OPTIONS request with a given URL
options "https://example.com/api/items/1"Start building a TRACE request with a given URL
trace "https://example.com/api/items/1"Start building a HEAD request with a given URL
head "https://example.com/api/items/1"Add a single header to a request
get "https://example.com/api/items/1"
|> withHeader "Content-Type" "application/json"Add many headers to a request
get "https://example.com/api/items/1"
|> withHeaders [("Content-Type", "application/json"), ("Accept", "application/json")]Convenience function for adding a string body to a request
post "https://example.com/api/items/1"
|> withStringBody "application/json" """{ "sortBy": "coolness", "take": 10 }"""Convenience function for adding a JSON body to a request
params = Json.Encode.object
[ ("sortBy", Json.Encode.string "coolness")
, ("take", Json.Encode.int 10)
]
post "https://example.com/api/items/1"
|> withJsonBody paramsConvience function for adding multipart bodies composed of String, String
key-value pairs. Since Http.stringData is currently the only Http.Data
creator having this function removes the need to use the Http.Data type in
your type signatures.
post "https://example.com/api/items/1"
|> withMultipartStringBody [("user", JS.encode user)]Convenience function for adding url encoded bodies
post "https://example.com/api/whatever"
|> withUrlEncodedBody [("user", "Luke"), ("pwd", "secret")]Set the timeout setting on the request
get "https://example.com/api/items/1"
|> withTimeout (10 * Time.second)Set the withCredentials flag on the request to True. Works via
XMLHttpRequest#withCredentials
get "https://example.com/api/items/1"
|> withCredentialsAdd some query params to the url for the request
get "https://example.com/api/items/1"
|> withQueryParams [("hello", "world"), ("foo", "bar")]
|> withQueryParams [("baz", "qux")]
-- sends a request to https://example.com/api/items/1?hello=world&foo=bar&baz=quxChoose an Expect for the request
get "https://example.com/api/items/1"
|> withExpect (Http.expectJson itemsDecoder)Extract the Http.Request component of the builder, for introspection and testing
Send the request using Http.send
A type for chaining request configuration