Допустим, мы хотим заполнить некоторые модели 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 запросов.
Вместо этого начальная популяция может быть сделана из одного большого объединенного дерева только с одним запросом.В этом случае информация о типе модели в URL теряется.