Rest APIでRabbitMQ

◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【5/21開催】Azure OpenAI ServiceによるRAG実装ガイドを公開しました
生成AIを活用したユースケースで最も一番熱いと言われているRAGの実装ガイドを公開しました。そのガイドの紹介をおこなうイベントです!!
https://tech-lab.connpass.com/event/315703/

【5/27開催】事業変革を最新ソフトウェア技術で加速する「OSS利活用事例セミナー」
OSSのビジネス活用事例などを紹介します!登壇者はスカパー様やIPAなど🎤
OSSを活用した新たなビジネス創出やDX推進のヒントを得られる機会です。
https://ossforum.connpass.com/event/318583/
【6/19開催】Kong Community Japan Meetup #4
本イベントでは、Kong Inc. のVP of ProductであるReza Shafii氏もプレゼンターとして参加。当社からはアーキテクト マネージャーの槌野の登壇が決定!参加無料です!!
https://column.api-ecosystem.sios.jp/connect/kong/1081/

こんにちは。サイオステクノロジー技術部 武井です。今回は、RabbitMQのRestAPIを試してみます。

Rest APIの仕様

RabbitMQはRest APIもサポートしています。なので、HTTPクライアントさえあれば、言語やプラットフォーム問わず、利用が可能です。以下URLに仕様があります。

https://cdn.rawgit.com/rabbitmq/rabbitmq-management/rabbitmq_v3_3_5/priv/www/api/index.html

これを見る限りですと、キューの配信や取得などそこそこのことはできそうな感じですね。

※ 現時点(2018年2月28日)でyumでインストールできるバージョン(3.3.5)を元にしております。最新版は若干APIの仕様が違うようです。

試してみる

早速試してみたいと思います。特定のキューのメッセージを取得するAPIを試してみます。上記のドキュメントを見てみると仕様は以下のようです。

Method
POST (GETぢゃないよって注意書きがあります)

URI
/api/queues/vhost/name/get
※vhostはVirtual Host名、nameは取得対象のキューの名前です

Body
{“count”:5,”requeue”:true,”encoding”:”auto”,”truncate”:50000}

count:一度に取得するメッセージの最大件数です
requeue:trueだと、キューからメッセージを取得後に削除せず、falseだと削除します。
encoding:autoだとメッセージがUTF-8だと文字列で、base64だとbase64にエンコードされるそうです。
truncate:ここで指定したバイト以下にメッセージの内容が切り詰められます。必須項目ではないです。

認証
Basic認証です。RabbitMQに登録しているユーザーでBasic認証します。

ということでcurlコマンドで試してみます。

$ curl -u guest:guest -H 'Content-Type:application/json'd "{\"count\":5,\"requeue\":false,\"encoding\":\"auto\"}" https://localhost:15672/api/queues/%2f/rabbitmq_sample/get
[
    {
        "exchange": "", 
        "message_count": 0, 
        "payload": "hoge", 
        "payload_bytes": 4, 
        "payload_encoding": "string", 
        "properties": {
            "delivery_mode": 1, 
            "headers": {}
        }, 
        "redelivered": false, 
        "routing_key": "rabbitmq_sample"
    }
]

おお(`・ω・´)シャキーン

取得できました。ちなみにpayloadという項目がメッセージの内容になります。

アバター画像
About 武井 宜行 269 Articles
Microsoft MVP for Azure🌟「最新の技術を楽しくわかりやすく」をモットーにブログtech-lab.sios.jp)で情報を発信🎤得意分野はAzureによるクラウドネイティブな開発(Javaなど)💻「世界一わかりみの深いクラウドネイティブ on Azure」の動画を配信中📹 https://t.co/OMaJYb3pRN
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる