Skip to content

kuanysh-nabiyev/RabbitMqHttpApiClient

Repository files navigation

RabbitMqHttpApiClient

C# wrapper for RabbitMQ HTTP Management API

Installation:

Install-Package RabbitMqHttpApiClient

Examples:

[HttpGet("/api/queues/{name}")]
public async Task<dynamic> GetQueueByName(string name)
{
    string virtualHost = "/";
    var queue = await _rabbitMqApi.GetQueueByVhostAndName(virtualHost, name);
    var messages = await _rabbitMqApi.GetQueueMessages(virtualHost, name);

    return new {
        Name = queue.Name,
        Messages = messages.Select(item => new 
        {
            Payload = item.Payload,
            PayloadBytes = item.PayloadBytes     
        })
    };
}

Other methods:

var rabbitMqApi = new RabbitMqApi("http://localhost:15672", "guest", "guest");
IEnumerable<Queue> queues = await rabbitMqApi.GetQueues();

IEnumerable<Queue> GetQueues(); 
IEnumerable<Queue> GetQueuesByVhost("virtualHost");
Queue GetQueueByVhostAndName("virtualHost", "queueName");
IEnumerable<QueueMessage> GetQueueMessages("virtualHost", "queueName", quantityOfMessagesToGet);
bool DeleteAllQueueMessages("virtualHost", "queueName");

IEnumerable<Node> GetNodes();
Node GetNode("nodeName", withMemory:true, withBinary:true)

SystemDefinition GetDefinitions();
VhostDefinition GetDefinitionByVhost("virtualHost");

IEnumerable<Connection> GetConnections();
IEnumerable<Connection> GetConnectionsByVhost("virtualHost");
Connection GetConnection("connectionname");

IEnumerable<Channel> GetChannels();
IEnumerable<Channel> GetChannelsByVhost("virtualHost");
IEnumerable<Channel> GetChannelsByConnection("connectionname");
Channel GetChannel("channelname");

IEnumerable<Consumer> GetConsumers();
IEnumerable<Consumer> GetConsumersByVhost("virtualHost");

IEnumerable<Exchange> GetExchanges();
IEnumerable<Exchange> GetExchangesByVhost("virtualHost");
Exchange GetExchangeByVhostAndName("virtualHost", "exchangeName");
bool PublishMessage("virtualHost", "exchangeName", "queueName", objectToPublish);

IEnumerable<Binding> GetBindings();
IEnumerable<Binding> GetBindingsByVhost("virtualHost");
IEnumerable<Binding> GetBindingsByVhostAndQueue("virtualHost", "queueName");
IEnumerable<Binding> GetBindingsByVhostAndExchange("virtualHost", "queueName", ExchangeBindingType.Destination);

Overview GetOverview();
string GetClusterName();
IEnumerable<ManagementPluginExtension> GetExtensions();

About

C# wrapper for RabbitMQ HTTP Management API

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published