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 的媒体类型中的高层对象和数组。