A Reactor extension that provides steps for working with HTTP requests via Req.
The following example uses Reactor to retrieve the repository description from the GitHub API:
defmodule GetGitHubRepoDescription do
use Reactor, extensions: [Reactor.Req]
input :owner
input :repo
step :repo_url do
argument :owner, input(:owner)
argument :repo, input(:repo)
run fn args ->
URI.new("https://api.github.com/repos/#{args.owner}/#{args.repo}")
end
end
req_get :get_repo do
url result(:repo_url)
headers value([accept: "application/vnd.github.v3+json"])
http_errors value(:raise)
end
step :get_description do
argument :description, result(:get_repo, [:body, "description"])
run fn args -> {:ok, args.description} end
end
end
Reactor.run!(GetGitHubRepoDescription, %{
owner: "ash-project",
repo: "reactor_req"
})
# => "A Reactor DSL extension for making HTTP requests with Req."
If available in Hex, the package can be installed
by adding reactor_req
to your list of dependencies in mix.exs
:
def deps do
[
{:reactor_req, "~> 0.1.4"}
]
end
Documentation for the latest release is available on HexDocs.
This software is licensed under the terms of the MIT License.
See the LICENSE
file included with this package for the terms.