Collection+JSON 文档
对于这个设计,我们不再以可能的状态和转移为起点,相反,我们将从一个集合状态响应中可能元素的顶层布局开始。从这一点入手,其他细节可以随着设计向超媒体类型最底层属性的深入,再行添加。
对于一个Collection+JSON 文档的集合状态,下面是其可能内容的一个简单表示:
// sample colleciton.json map
{
"collection" :
{
"version" : "1.0",
"href" : URI,
"links" : [ARRAY],
"items :
[
{
"href" : URI,
"data" : [ARRAY],
"links" : [ARRAY]
},
...
],
"queries" : [ARRAY],
"template" :
{
"data" : [ARRAY]
},
"error" : {OBJECT}
}
}
collection 对象有两个简单属性(href 和version)、两个顶层数组(保存集合级URI 的links,保存列表中实际数据的items)、两个子对象(template 和error)。items 数组有一个href 属性,以及两个子数组(data 和links)。template 对象有一个子数组(data)。
上面列出了设计的基本要素。该设计能够表示较多的列表类型。利用列表提供的URI,该设计支持添加、编辑和删除动作,而且列表中的每个条目都有一个可以向服务器写入信息的模板。根据需要,客户端应用也可以执行一系列查询,该设计也支持查询的列表。
下面我们会更详细地描述这一基于JSON 的媒体类型中的高层对象和数组。