.Net RabbitMQ實現HTTP API接口調用
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接口調用內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 解決訪問不到Linux服務器中RabbitMQ管理頁面問題
- RabbitMQ的Web管理與監控簡介
- 詳解IntelliJ IDEA 自帶的 HTTP Client 接口調用插件吊打 Postman
- Spring MVC獲取HTTP請求頭的兩種方式小結
- 用docker部署RabbitMQ環境的詳細介紹