Etude.Request
Parallel HTTP requests for etude
Installation
Etude.Request is available in Hex and can be installed as:
Add etude_request to your list of dependencies in
mix.exs:def deps do
[{:etude_request, "~> 0.0.1"}]end
Ensure etude_request is started before your application:
def application do
[applications: [:etude_request]]end
Usage
{gh_status, gh_headers, gh_body} = Etude.Request.get("https://api.github.com")
IO.inspect {gh_status, gh_headers, gh_body}
# {%Etude.Request.Status{request: #Function<...>},
# %Etude.Request.Headers{request: #Function<...>},
# %Etude.Request.Body{request: #Function<...>}}
{ip_status, ip_headers, ip_body} = Etude.Request.get("https://api.ipify.org")
IO.inspect Etude.resolve([{gh_status, gh_headers}, {ip_status, ip_body}])
# [{200, [{"Server", "GitHub.com"}, ...]},
# {200, "123.456.789.0"}]API
The options and functions should mostly be compatible with httpoison. One big exception is all functions in Etude.Request raise errors instead of return {:ok, value} | {:error, reason}, since error checking is done at request time instead of call time.