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接口调用的更多相关文章

  1. 【RabbitMQ 实战指南】一 RabbitMQ 开发

    1.RabbitMQ 安装 RabbitMQ 的安装可以参考官方文档:https://www.rabbitmq.com/download.html 2.管理页面 rabbitmq-management ...

  2. 【redis】redis实现API接口调用调用次数的限制

    redis实现API接口调用调用次数的限制 参考地址:https://bbs.csdn.net/topics/391856106?page=1 参考地址:https://www.cnblogs.com ...

  3. [转载]android常用的API接口调用

    原文地址:android常用的API接口调用作者:宋耀 显示网页:         Uri uri = Uri.parse("http://www.google.com"); In ...

  4. 【RabbitMQ 实战指南】一 延迟队列

    1.什么是延迟队列 延迟队列中存储延迟消息,延迟消息是指当消息被发送到队列中不会立即消费,而是等待一段时间后再消费该消息. 延迟队列很多应用场景,一个典型的应用场景是订单未支付超时取消,用户下单之后3 ...

  5. Nginx api接口调用配置

    1 # Nginx api接口调用配置 2 3 # 什么是跨域同源? 4 # 同源策略:协议(http.https.wss--)+域名+端口=一个完整的网站 5 # 跨域:当前所在的网站post(ge ...

  6. 新浪网易淘宝等IP地区信息查询开放API接口调用方法

    通过IP地址获取对应的地区信息通常有两种方法:1)自己写程序,解析IP对应的地区信息,需要数据库.2)根据第三方提供的API查询获取地区信息. 第一种方法,参见文本<通过纯真IP数据库获取IP地 ...

  7. ajax跨域实现api 接口调用

    背景: 想实现跨域去调用接口, 然后同时支持下次调用,能够带cookie信息过来,同时支持来自多个源头的域名的跨域调用. 1.这样支持来自所有域名的跨域调用: 不支持跨域是,浏览器报错: 在api接口 ...

  8. JAVA的免费天气api接口调用示例

    step1:选择本文所示例的接口"免费天气api" url:https://www.juhe.cn/docs/api/id/39/aid/87 step2:每个接口都需要传入一个参 ...

  9. java web api接口调用

    Web Services 被W3C进行了标准化定义. Web Services 发布到网上,可以公布到某个全局注册表,自动提供服务URL,服务描述.接口调用要求.参数说明以及返回值说明.比如中国气象局 ...

随机推荐

  1. (Py练习)判断能被几个9整除

    # 输入一个奇数,判断最少几个9除以该数的结果为整数 # 999999 / 13 = 76923 if __name__ == '__main__': zi = int(input("输入一 ...

  2. springboot开发浅谈 2021/05/11

    学习了这么久,本人希望有时间能分享一下,这才写下这篇浅谈,谈谈软件,散散心情. 这是本人的博客园账号,欢迎关注,一起学习. 一开始学习springboot,看了好多网站,搜了好多课程.零零落落学了一些 ...

  3. @JsonFormat 格式化时间 时出现时间不准确问题

    今天突然报个问题,简单来说说就是数据库某一字段的记录时间为 14点,然而展示到前台却是 6点 我腚眼一看,postman测试的数据也是6点 然而idea查出来的并不是6点 再仔细一瞅idea实体类的时 ...

  4. 改善c++程序的150个建议(读后总结)-------27-35

    27. 区分内存分配的方式 c++中内存分为5个不同的区 ①栈区 栈是一种特殊的数据结构,其存取数据特点为(先进后出,后进先出).栈区中主要用于存储一些函数的入口地址,函数调用时的实参值以及局部变量. ...

  5. Spring 实现策略模式--自定义注解方式解耦if...else

    策略模式 定义 定义一簇算法类,将每个算法分别封装起来,让他们可以互相替换,策略模式可以使算法的变化独立于使用它们的客户端 场景 使用策略模式,可以避免冗长的if-else 或 switch分支判断 ...

  6. Django(27)类视图

    类视图 在写视图的时候,Django除了使用函数作为视图,也可以使用类作为视图.使用类视图可以使用类的一些特性,比如继承等. View django.views.generic.base.View是主 ...

  7. 10.Debug

    1.Debug模式 1.1 什么是Debug模式 是供程序员使用的程序调试工具,它可以用于查看程序的执行流程,也可以用于追踪程序执行过程来调试程序. 1.2 Debug介绍与操作流程 Debug调式, ...

  8. [算法] 单链表插入排序(java)

    实现 首先保证插入前的链表是个完整的,最后一个节点要断开 然后在插入前链表中找到比待插入节点大的最小元素,插到前面即可 Link.java class Link { private class Nod ...

  9. 用JIRA管理你的项目——(三)基于LDAP用户管理

    JIRA提供了基于LDAP方式的用户管理,也就是用户密码的管理交给LDAP,而JIRA只管理用户在系统中的角色. 要打开JIRA的LDAP设置,首先需要验证下你的LDAP服务是否正常! 几乎有所有的L ...

  10. [Qt] 打包

    步骤: 1.release项目,生成exe文件 2.在命令行中使用windeployqt,将相关文件复制到exe文件所在文件夹 3.用Enigma Virtual Box打包所有文件 参考 https ...