Skip to content

ash-project/reactor_req

Repository files navigation

Logo Light

Logo Dark

Reactor.Req

Build Status License: MIT Hex version badge

A Reactor extension that provides steps for working with HTTP requests via Req.

Example

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."

Installation

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.

Licence

This software is licensed under the terms of the MIT License. See the LICENSE file included with this package for the terms.

About

A Reactor DSL extension for making HTTP requests with Req.

Resources

License

Code of conduct

Stars

Watchers

Forks

Sponsor this project

  •  
  •  

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages