介绍
除了帮助页面,所有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
胡小军 阅读(7287)
评论(0) 编辑 收藏 所属分类:
RabbitMQ