消费者 API - 用户指南

本指南假定您将使用 barbican 的本地开发环境。 如果您需要设置方面的帮助,请参考 开发指南

什么是消费者?

消费者是一种注册对容器感兴趣的方式。 可以通过对 {container_ref}/consumers 执行 GET 操作来查看所有注册的消费者。 其想法是,在删除容器之前,应通知所有消费者删除操作。

如何创建消费者

curl -X POST -H "X-Auth-Token: $TOKEN" -H "Content-Type: application/json" \
-d '{"name": "consumername", "URL": "consumerURL"}' \
 https://:9311/v1/containers/74bbd3fd-9ba8-42ee-b87e-2eecf10e47b9/consumers

这将返回以下响应

{
    "status": "ACTIVE",
    "updated": "2015-10-15T21:06:33.121113",
    "name": "container name",
    "consumers": [
        {
            "URL": "consumerurl",
            "name": "consumername"
        }
    ],
    "created": "2015-10-15T17:55:44.380002",
    "container_ref":
    "https://:9311/v1/containers/74bbd3fd-9ba8-42ee-b87e-2eecf10e47b9",
    "creator_id": "b17c815d80f946ea8505c34347a2aeba",
    "secret_refs": [
        {
            "secret_ref": "https://:9311/v1/secrets/b61613fc-be53-4696-ac01-c3a789e87973",
            "name": "private_key"
        }
    ],
    "type": "generic"
}

如何检索消费者

要检索消费者,请对 {container_ref}/consumers 执行 GET 操作。 这将返回此容器的所有消费者。 您可以选择性地添加 limit 和 offset 查询参数。

curl -H "X-Auth-Token: $TOKEN" \
http://192.168.99.100:9311/v1/containers/74bbd3fd-9ba8-42ee-b87e-2eecf10e47b9/consumers

这将返回以下响应

{
    "total": 1,
    "consumers": [
        {
            "status": "ACTIVE",
            "URL": "consumerurl",
            "updated": "2015-10-15T21:06:33.123878",
            "name": "consumername",
            "created": "2015-10-15T21:06:33.123872"
        }
    ]
}

返回的值是指定容器的所有消费者的列表。 每个消费者都将与其元数据一起列出。

如果指定了 offset 和 limit 参数,您将看到 previous 和 next 引用,允许您循环浏览此容器的所有消费者。

curl -H "X-Auth-Token: $TOKEN" \
http://192.168.99.100:9311/v1/containers/74bbd3fd-9ba8-42ee-b87e-2eecf10e47b9/consumers?limit=1\&offset=1

这将返回以下响应

{
    "total": 3,
    "next": "https://:9311/v1/containers/74bbd3fd-9ba8-42ee-b87e-2eecf10e47b9/consumers?limit=1&offset=2",
    "consumers": [
        {
            "status": "ACTIVE",
            "URL": "consumerURL2",
            "updated": "2015-10-15T21:17:08.092416",
            "name": "consumername2",
            "created": "2015-10-15T21:17:08.092408"
        }
    ],
    "previous": "https://:9311/v1/containers/74bbd3fd-9ba8-42ee-b87e-2eecf10e47b9/consumers?limit=1&offset=0"
}

如何删除消费者

要删除容器的消费者,您必须提供创建消费者时使用的消费者名称和 URL。

curl -X DELETE -H "X-Auth-Token: $TOKEN" -H "Content-Type: application/json" \
 -d '{"name": "consumername", "URL": "consumerURL"}' \
  https://:9311/v1/containers/74bbd3fd-9ba8-42ee-b87e-2eecf10e47b9/consumers

这将返回以下响应

{
    "status": "ACTIVE",
    "updated": "2015-10-15T17:56:18.626724",
    "name": "container name",
    "consumers": [],
    "created": "2015-10-15T17:55:44.380002",
    "container_ref": "https://:9311/v1/containers/74bbd3fd-9ba8-42ee-b87e-2eecf10e47b9",
    "creator_id": "b17c815d80f946ea8505c34347a2aeba",
    "secret_refs": [
        {
            "secret_ref": "https://:9311/v1/secrets/b61613fc-be53-4696-ac01-c3a789e87973",
            "name": "private_key"
        }
    ],
    "type": "generic"
}

成功的删除将返回 HTTP 200 OK。 响应内容将是容器加上消费者列表,减去刚刚删除的消费者。