Использование Backbone Relational для обработки данных JSON-API

Мы использовали Backbone Relational для моделирования наших отношений ORM во внешнем интерфейсе, например:

{
  id: 2
  username: "bob"
  comments: [
     {
        id:5,
        comment: "hi",
        user: {
           username: 'Bob'
        }
     }

  ]
}

Это отлично работает с такими моделями, как эта, во внешнем интерфейсе:

  class User extends App.RelationalModel
    relations: [{
      type: Backbone.HasMany,
      key: 'comments',
      relatedModel: 'Comment',
      collectionType: 'CommentCollection'
    }]

Однако теперь наш API изменился и больше соответствует спецификации JSON-API, поэтому данные из серверной части инкапсулируются внутри «данных».

{
  data: {
    id: 2
    username: "bob"
    data: {
      comments: [
         {
            id:5,
            comment: "hi",
            user: {
               username: 'Bob'
            }
         }
      ]
    },
    meta: {
    }
  }
}

Как мы можем дать указание магистральной реляционной структуре получать данные для отношения «комментарии» из .data вместо прямого сопоставления структуры json?

Для «пользователя класса» мы можем реализовать метод синтаксического анализа следующим образом.

class User
  parse: (response) ->
    response.data

Но как нам это сделать для отношения комментариев??


person user391986    schedule 02.06.2015    source источник


Ответы (1)


Как это?

parse: function (response) {
    var fixed_response = response.data;
    fixed_response.comments = fixed_response.data.comments;
    delete fixed_response.json.data;
    return fixed_response;
}
person David Fusilier    schedule 04.09.2015