rabbitmq management插件还提供了基于restful风格的http api接口来方便调用。一共涉及4种http方法:get、put、delete和post。get方法一般用来获取如集群、节点、队列、交换器等信息。put方法用来创建资源,如交换器、队列之类的。delete方法用来删除资源。post方法也是用来创建资源的,与put不同的是,post创建的是无法用具体名称的资源。比如绑定关系(bindings)和发布消息(publish)无法指定一个具体的名称。

点击web管理界面左下角的“http api”即可跳转到相应的“rabbitmq management http api”帮助页面(http://localhost:15672/api/index.html),里面有详细的接口信息。

借助提供http api接口可以实现自己的中台或者前端做一些调用等。

http api 调用

官网文档给的curl示例

调用http api可以借助rabbitmqhttpapiclient(https://github.com/kuanysh-nabiyev/rabbitmqhttpapiclient)或者自己实现http请求。

本文借助refit库实现rabbitmq http api调用,只有一个http://localhost:15672/api/vhosts 示例。关于refit库的使用可以参考:https://github.com/reactiveui/refit

定义refit api接口

示例只简单的返回string,实际使用时可定义对应的model。

注册irabbitmqapi

addrefitclient方法需要添加refit.httpclientfactory包。通过authorizationheadervaluegetter增加rabbitmq http api调用的身份认证,对应irabbitmqapi的headers(“authorization: basic”)部分

注入和调用

在控制的构造函数中注入irabbitmqapi,并在对应方法中调用。

运行效果

说明

示例源码:https://github.com/mayuecif/rabbitmq

本意是想学习完整个rabbitmq系列在看其他内容。无奈考虑换份工作到某宝在线面试碰壁,主要是mysql基础薄弱、集群相关以及.net core一些机制的实现原理没有深究。因为一直都是用ef来操作数据库,所以会做一些ef操作千万级别数据的尝试。

到此这篇关于.net rabbitmq实现http api接口调用的文章就介绍到这了,更多相关.net rabbitmq http api接口调用内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!