Elixir CILicense: MITHex version badgeHexdocs badge

ExRabbitMQAdmin

Simple client library for the RabbitMQ HTTP API, built on Tesla.

Read the full documentation here.

Supported functionality

Installation

This package is available in Hex, and can be installed by adding ex_rabbitmq_admin to your list of dependencies in mix.exs:

def deps do
  [
    {:ex_rabbitmq_admin, "~> 0.1.0"}
  ]
end

Example usage

First step is to set up some basic configuration in your config.exs file.

# config.exs

config :ex_rabbitmq_admin, ExRabbitMQAdmin,
  base_url: "https://rabbitmq.example.com:56721"

Next, you can use the ExRabbitMQAdmin client from wherever you want.

defmodule RabbitMQControl do
  alias ExRabbitMQAdmin

  @doc """
  Creates a new user on the RabbitMQ cluster.
  """
  def create_rabbit_user(username, password) do
    {:ok, %Tesla.Env{status: 201}} =
      ExRabbitMQAdmin.client()
      |> ExRabbitMQAdmin.add_basic_auth_middleware(username: "rabbit-admin", password: "secret-password")
      |> ExRabbitMQAdmin.User.put_user(username, password: password, tags: "moderator")
  end

  # Or maybe you want to list virtual hosts
  def virtual_hosts do
    {:ok, %Tesla.Env{:status: 200, body: response}} =
      ExRabbitMQAdmin.client()
      |> ExRabbitMQAdmin.add_basic_auth_middleware(username: "rabbit-admin", password: "secret-password")
      |> ExRabbitMQAdmin.Vhost.list_vhosts()
  end
end

Contribution

The RabbitMQ HTTP API documentation is available here.

Running the test suite

$ mix coveralls.html