No changes yet.
This library no longer supports Ruby 1.8 and thus
doesn't need to depend on the effin_utf8
gem.
Contributed by Luciano Sousa.
Bodies of responses with content length of 0 will no longer be deserialised.
This improves compatibility with future versions of RabbitMQ that will use Cowboy 2.7.0 or later, which doesn't include the content-type header for blank responses (e.g. PUTs).
Spec files and development/CI scripts are no longer included into the gem.
GitHub issue: #30
Contributed by Mrinmoy Das.
URI path segment encoding (e.g. vhosts, queue names, etc) in this client now correctly encodes spaces.
GitHub issue: #28.
The :tags
attribute is no longer required by Client#update_user
. If not provided,
a blank list of tags will be used.
The client now can upload definitions (of queues, exchanges, etc):
defs = {
:queues => [{
:name => 'my-definition-queue',
:vhost => '/',
:durable => true,
:auto_delete => false,
:arguments => {
"x-dead-letter-exchange" => 'dead'
}
}]
}.to_json
c.upload_definitions(defs)
Contributed by Pol Miro.
If provided endpoint contains a path, it will be used instead of /api
.
Contributed by Pol Miro.
Client#protocol_ports
no longer fails with a nil pointer exception
for non-administrators.
The library now depends on hashie ~> 3.2
.
Contributed by Damon Morgan.
The library now depends on multi_json ~> 1.9
.
Contributed by Damon Morgan.
The project now depends on Faraday 0.9.x
.
Contributed by John Murphy.
RabbitMQ::HTTP::Client#delete_exchange
is a new function that deletes exchanges:
c.delete_exchange("/", "an.exchange")
Contributed by Matt Bostock.
The library no longer uses 1.9-specific hash syntax.
It is now possible to declare an exchange over HTTP API using RabbitMQ::HTTP::Client#declare_exchange
:
c.declare_exchange("/", exchange_name, :durable => false, :type => "fanout")
Contributed by Jake Davis (Simple).
The library now depends on hashie ~> 2.0.5
.
The library now depends on faraday ~> 0.8.9
.
The library now depends on multi_json ~> 1.8.4
.
RabbitMQ::HTTP::Client#queue_binding_info
,
RabbitMQ::HTTP::Client#bind_queue
, and
RabbitMQ::HTTP::Client#delete_queue_binding
are new methods that operate on queue bindings:
c = RabbitMQ::HTTP::Client.new("http://guest:guest@127.0.0.1:15672")
c.bind_queue("/", "a.queue", "an.exchange", "routing.key")
c.queue_binding_info("/", "a.queue", "an.exchange", "properties.key")
c.delete_queue_binding("/", "a.queue", "an.exchange", "properties.key")
Contributed by Noah Magram.
RabbitMQ::HTTP::Client#enabled_protocols
is a new method that returns
a hash of enabled protocols to their ports. The keys are the same as
returned by Client#enabled_protocols
:
# when TLS and MQTT plugin is enabled
c.protocol_ports # => {"amqp" => 5672, "amqp/ssl" => 5671, "mqtt" => 1883}
RabbitMQ::HTTP::Client#enabled_protocols
is a new method that returns
a list of enabled protocols. Some common values are:
amqp
(AMQP 0-9-1)amqp/ssl
(AMQP 0-9-1 with TLS enabled)mqtt
stomp
# when TLS and MQTT plugin is enabled
c.enabled_protocols # => ["amqp", "amqp/ssl", "mqtt"]
It is now possible to pass credentials in the endpoint URI:
c = RabbitMQ::HTTP::Client.new("https://guest:guest@127.0.0.1:15672/")
It is now possible to pass more options to Faraday connection, for example, HTTPS related ones:
c = RabbitMQ::HTTP::Client.new("https://127.0.0.1:15672/", username: "guest", password: "guest", ssl: {
client_cer: ...,
client_key: ...,
ca_file: ...,
ca_path: ...,
cert_store: ...
})
Any options other than username
and password
will be passed on to
Faraday::Connection
.
RabbitMQ::HTTP::Client#endpoint
is a new reader (getter) that makes
it possible to access the URI a client instance uses.
4xx
and 5xx
responses now will result in meaningful exceptions
being raised. For example, 404
responses will raise Faraday::Error::ResourceNotFound
.
The library now depends on multi_json ~> 1.7.0
.
- Operations on queues
- Operations on users
- Operations on permissions
- Operations on parameters
- Operations on policies
- Status overview
- Cluster nodes information
- Operations on exchanges, queues, bindings
- Operations on connections