介紹
除了幫助頁面,所有URIs只會服務application/json
類型的資源,并且需要HTTP基礎認證(使用標準RabbitMQ用戶數據庫). 默認用戶是guest/guest.
大多數URIs需要虛擬主機名稱作為其路徑的一部分, 因為名稱是虛擬主機的唯一標識符對象. 默認虛擬主機稱為"/
", 它需要編碼為"%2f
".
PUT一個資源會對其進行創建. 你上傳的JSON對象必須有某個鍵keys (下面文檔有描述),其它的鍵會被忽略. 缺失鍵會引發錯誤.
在AMQP中,由于綁定沒有名稱或IDs,因此我們基于其所有屬性人工合成了一個.
由于一般情況下很難預測這個名字, 你可以通過POST一個工廠URI來創建綁定.查看下面的例子.
注意事項
這些注意事項適用于當前管理AP的開發版本。在未來,他們將是固定的。
arguments
字段會被忽略.你不創建一個隊列,交換器或使用參數進行綁定. 帶有參數的隊列,交換器或綁定也不會顯示這些參數.- 權限偶爾才需要強制執行.如果一個用戶能用HTTP API進行認證,那么它們可以做任何事情.
- 從GET請求中返回的對象中包含許多與監控相關的信息. 它們是無證實的,并且將來可能要發生變化.
示例
下面有幾個快速例子,它們使用了Unix命令行工具curl
:
- 獲取虛擬主機列表:
$ curl -i -u guest:guest http://localhost:55672/api/vhosts
HTTP/1.1 200 OK
Server: MochiWeb/1.1 WebMachine/1.7 (participate in the frantic)
Date: Tue, 31 Aug 2010 15:46:59 GMT
Content-Type: application/json
Content-Length: 5
["/"]
- 創建一個新虛擬主機:
$ curl -i -u guest:guest -H "content-type:application/json" \ -XPUT http://localhost:55672/api/vhosts/foo
HTTP/1.1 204 No Content
Server: MochiWeb/1.1 WebMachine/1.7 (participate in the frantic)
Date: Fri, 27 Aug 2010 16:56:00 GMT
Content-Type: application/json
Content-Length: 0
注意: 你必須將mime類型指定為application/json
.
Note: 在上傳的JSON對象中,對象名稱是不需要的,因為它已經包含在了URI中. 由于一個虛擬主機除了名稱外沒有其它屬性,這意味著你完全不需要指定一個body.
- 在默認虛擬主機中創建一個新的交換器:
$ curl -i -u guest:guest -H "content-type:application/json" \ -XPUT -d'{"type":"direct","auto_delete":false,"durable":true,"arguments":[]}' \ http://localhost:55672/api/exchanges/%2f/my-new-exchange
HTTP/1.1 204 No Content
Server: MochiWeb/1.1 WebMachine/1.7 (participate in the frantic)
Date: Fri, 27 Aug 2010 17:04:29 GMT
Content-Type: application/json
Content-Length: 0
注意: 在PUT或DELETE的響應中, 除非失敗了,否則我們絕不會返回一個body.
- 再刪除它:
$ curl -i -u guest:guest -H "content-type:application/json" \ -XDELETE http://localhost:55672/api/exchanges/%2f/my-new-exchange
HTTP/1.1 204 No Content
Server: MochiWeb/1.1 WebMachine/1.7 (participate in the frantic)
Date: Fri, 27 Aug 2010 17:05:30 GMT
Content-Type: application/json
Content-Length: 0
參考
GET | PUT | DELETE | POST | Path | Description |
---|
X |
|
|
| /api/overview | 描述整個系統的各種隨機信息。 |
X |
|
|
| /api/connections | 所有打開連接的列表. |
X |
| X |
| /api/connections/name | 一個單獨的連接. DELETE它會導致連接關閉. |
X |
|
|
| /api/channels | 所有打開通道的列表. |
X |
|
|
| /api/channels/channel | 單個通道的詳情. |
X |
|
|
| /api/exchanges | 所有交換器的列表. |
X |
|
|
| /api/exchanges/vhost | 指定虛擬主機中所有交換器列表. |
X | X | X |
| /api/exchanges/vhost/name | 一個單獨的交換器.要PUT一個交換器,你需要一些像下面這樣的body:{"type":"direct","auto_delete":false,"durable":true,"arguments":[]} |
X |
|
|
| /api/exchanges/vhost/name/bindings | 指定交換器中的綁定列表. |
X |
|
|
| /api/queues | 所有隊列的列表. |
X |
|
|
| /api/queues/vhost | 指定虛擬主機中所有隊列列表. |
X | X | X |
| /api/queues/vhost/name | 一個單獨隊列.要PUT一個隊列, 你需要一些像下面這樣的body:{"auto_delete":false,"durable":true,"arguments":[]} |
X |
|
|
| /api/queues/vhost/queue/bindings | 指定隊列中的所有綁定列表. |
X |
|
|
| /api/bindings | 所有綁定列表. |
X |
|
|
| /api/bindings/vhost | 指定虛擬主機上的所有綁定列表. |
X |
|
| X | /api/bindings/vhost/queue/exchange | 隊列和交換器之間的所有綁定列表. 記住,隊列和交換器可以綁定多次!要創建一個新綁定, POST 這個URI.你需要一些像下面這樣的body:{"routing_key":"my_routing_key","arguments":[]} 響應會包含一個Location header,它會告訴你新綁定的URI. |
X | X | X |
| /api/bindings/vhost/queue/exchange/props | 隊列和交換器之間的單個綁定. URI的props部分是一個名稱,用于由路由鍵和屬性組成的綁定.你可以通過PUT這個URI來創建一個綁定,它比上面POST URI更方便. |
X |
|
|
| /api/vhosts | 所有虛擬主機列表. |
X | X | X |
| /api/vhosts/name | 單個虛擬主機.由于虛擬主機只有一個名稱,因此在PUT時不需要body. |
X |
|
|
| /api/users | 所有用戶列表. |
X | X | X |
| /api/users/name | 單個用戶. 要PUT一個用戶, 你需要一些像下面這樣的body:{"password":"secret"} |
X |
|
|
| /api/users/user/permissions | 指定用戶的所有權限列表. |
X |
|
|
| /api/permissions | 所有用戶的所有權限列表. |
X | X | X |
| /api/permissions/vhost/user | 一個虛擬主機中某個用戶的個人權限. 要PUT一個權限,你需要一些像下面這樣的body:{"scope":"client","configure":".*","write":".*","read":".*"} |
posted on 2016-08-13 21:50
胡小軍 閱讀(7314)
評論(0) 編輯 收藏 所屬分類:
RabbitMQ