序列化的响应格式

序列化的响应格式

默认情况下,对象存储API使用``text/plain``格式的响应。另外,也支持JSON和XML格式的数据序列化响应。

注解

为运行cURL命令的例子,必须导出环境变量,想要咨询更多内容,参考章节:ref:env-vars

使用下列方法之一定义一个响应格式:

方法 描述
查询参数format= format 将该参数添加到`GET`请求的URL,format``可以为``json``或``xml.
请求头``Accept``

在``GET``请求中包含该请求头。有效值为:

text/plain
纯文本响应。默认格式。
application/jsontext
JSON数据序列化响应格式。
application/xml
XML数据序列化响应格式
text/xml
XML数据序列化响应格式

例1. 带有格式参数的JSON例子

例如,这请求使用“format”查询参数请求JSON响应:

$ curl -i $publicURL?format=json -X GET -H "X-Auth-Token: $token"
HTTP/1.1 200 OK
Content-Length: 96
X-Account-Object-Count: 1
X-Timestamp: 1389453423.35964
X-Account-Meta-Subject: Literature
X-Account-Bytes-Used: 14
X-Account-Container-Count: 2
Content-Type: application/json; charset=utf-8
Accept-Ranges: bytes
X-Trans-Id: tx274a77a8975c4a66aeb24-0052d95365
Date: Fri, 17 Jan 2014 15:59:33 GMT

对象存储列出容器的名称以及JSON格式的附加信息:

[
   {
      "count":0,
      "bytes":0,
      "name":"janeausten"
   },
   {
      "count":1,
      "bytes":14,
      "name":"marktwain"
   }
]

例1. 带有Accept请求头的XML例子

此请求使用“Accept”请求头来请求一个XML响应:

$ curl -i $publicURL -X GET -H "X-Auth-Token: $token" -H \
  ”Accept: application/xml; charset=utf-8"
HTTP/1.1 200 OK
Content-Length: 263
X-Account-Object-Count: 3
X-Account-Meta-Book: MobyDick
X-Timestamp: 1389453423.35964
X-Account-Bytes-Used: 47
X-Account-Container-Count: 2
Content-Type: application/xml; charset=utf-8
Accept-Ranges: bytes
X-Trans-Id: txf0b4c9727c3e491694019-0052e03420
Date: Wed, 22 Jan 2014 21:12:00 GMT

对象存储列出容器名称以及XML格式的附加信息:

<?xml version="1.0" encoding="UTF-8"?>
<account name="AUTH_73f0aa26640f4971864919d0eb0f0880">
    <container>
        <name>janeausten</name>
        <count>2</count>
        <bytes>33</bytes>
    </container>
    <container>
        <name>marktwain</name>
        <count>1</count>
        <bytes>14</bytes>
    </container>
</account>

该文档剩余部分的例子使用了标准的、未序列化的响应。然而,所有执行列出操作的``GET``请求都接受``format``参数或支持Accept请求头。

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.