【发布时间】:2012-01-09 17:37:45
【问题描述】:
假设我们想要填充一些 javascript 模型(例如,backbone.js 模型),给定来自服务器的 json 响应,如下所示:
{
"todo": {
"title": "My todo",
"items": [
{ "body": "first item." },
{ "body": "second item"}
]
}
}
此数据不包含类型信息,因此当我们看到"todo" 键时,我们不知道要填充哪个模型。
当然可以创建一些自定义标准来将 json 响应对象中的键链接到客户端模型。例如:
{
"todo": {
"_type": "Todo",
"title": "My todo",
...
}
}
虽然这适用于对象,但在涉及列表时会变得很尴尬:
"items": {
"_type": "TodoItem",
"_value": [
{ "body": "first item." },
{ "body": "second item"}
]
}
在创建此自定义规则之前,问题是:
是否有任何关于在响应数据中包含客户端类型信息的 RESTful 指南?
如果不是,在响应 json 中包含客户端类型信息是否是个好主意?
除了填充模型的整个方法之外,还有哪些其他选择?
编辑
虽然可以从 url 中检索模型类型,例如 /todo 和 /user,但这种方法的问题是 N 个模型的初始填充将意味着 N 个 http 请求。
相反,初始填充可以从单个大合并树完成,只需 1 个请求。在这种情况下,url 中的模型类型信息会丢失。
【问题讨论】:
标签: javascript json rest backbone.js