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. 求曲线y=lnx在区间(2,6)内的一条切线,使得该切线与直线x=2,x=6及曲线y=lnx所围成的图形的面积最小。

    求曲线y=lnx在区间(2,6)内的一条切线,使得该切线与直线x=2,x=6及曲线y=lnx所围成的图形的面积最小. 1.先画图. 2.设切点为(a,lna) (2<a<6) 3.切线方程 ...

  2. Pycharm集成码云,图文手把手教学!

    Pycharm集成码云 码云(http://gitee.com)是开源中国推出的代码托管平台,支持 Git 和 SVN,提供免费的私有仓库托管 可以通过码云保管你的代码,每次修改完代码提交,就是一个版 ...

  3. JAVA8 lambda表达式权威教程!

    Java 8新特性----Stream流 jdk8是Java 语言开发的一个主要版本,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等等.今天就重点介 ...

  4. 测试中常用的链接URL----方便自己查找

    1.TesterHome:https://testerhome.com/ 2.selenium的操作手册:https://selenium-python.readthedocs.io/ 3.

  5. Django(17)orm查询操作

    前言 查找是数据库操作中一个非常重要的技术.查询一般就是使用filter.exclude以及get三个方法来实现.我们可以在调用这些方法的时候传递不同的参数来实现查询需求.在ORM层面,这些查询条件都 ...

  6. 【BUAA 软工个人项目作业】玩转平面几何

    BUAA 软件工程个人项目作业 项目 内容 课程:2020春季软件工程课程博客作业(罗杰,任健) 博客园班级链接 作业:BUAA软件工程个人项目作业 作业要求 课程目标 学习大规模软件开发的技巧与方法 ...

  7. [bug] Maven:No valid Maven installation found.maven

    原因 从别处复制来的项目,maven路径没有改过来 参考 https://blog.csdn.net/qq_40846086/article/details/81252736

  8. [刷题] PTA 03-树1 树的同构

    程序: 1 #include <stdio.h> 2 #define MaxTree 10 3 #define ElementType char 4 #define Tree int 5 ...

  9. 用户添加到sudoer列表## Allow root to run any commands anywhere root ALL=(ALL) ALL Iron ALL=(ALL) ALL

    将用户添加到sudoer列表 李序锴关注 2017.12.20 15:03:25字数 605阅读 4,067 默认情况下,linux没有将当前用户列入到sudoer列表中(在redhat系列的linu ...

  10. CentOS6 YUM 源失效问题解决办法

    问题解决 网站好不容易找到一个 Yum 源还能用,地址:https://vault.centos.org/6.9/ 操作简单,把CentOS-Base.repo 里面的东西全部删掉,添加如下内容即可. ...