Вложенные отношения JsonAPI с Ember Data

Я пытаюсь обработать ответ JSONAPI с вложенными отношениями. Ember-Data в настоящее время собирает все данные в свойстве «включено» и помещает их в правильные модели, но отношения между моими объектами «транскрипции» и объектами «ключевых точек» не работают. Отношения между объектами «видео» и «транскрипция» работают правильно, поэтому мне нужна помощь именно с частью вложения.

Вот пример данных, которые я использую:

{
   "data":{
      "type":"video",
      "id":"55e0687ba1f9e8032c549680",
      "attributes":{
         "title":"Test32"
      },
      "relationships":{
         "transcriptions":{
            "data":[
               {
                  "relationships":{
                     "cuepoints":{
                        "data":[
                           {
                              "id":"55e9b62446942224a0f456cc",
                              "type":"cuepoint"
                           }
                        ]
                     }
                  },
                  "id":"55e0687ba1f9e8032c549680-transcription-0",
                  "type":"transcription"
               }
            ]
         }
      }
   },
   "included":[
        {
           "type":"transcription",
           "id":"55e0687ba1f9e8032c549680-transcription-0",
           "attributes":{
              "language":"English"
           }
        },
      {
         "type":"cuepoint",
         "id":"55e9b62446942224a0f456cc",
         "attributes":{
            "cueIndex":0,
            "startTimeMilliseconds":0,
            "endTimeMilliseconds":4400,
            "text":"- The first one is the L'Oreal Paris Extraordinary Oil."
         }
      }
   ]
}

Любая идея, как я могу справиться с этим?


person Malabar Front    schedule 04.09.2015    source источник


Ответы (1)


Хотя я не тестировал этот конкретный случай, ваш JSON не соответствует требованиям.

Под ключом верхнего уровня relationships вы размещаете объекты «отношения», а в included вы размещаете объекты «ресурс». Объекты ресурсов содержат определения отношений.

Короче говоря, переместите вложенные отношения за пределы верхнего уровня relationships в included.

person aceofspades    schedule 04.09.2015
comment
Упоминается ли это где-нибудь в спецификации JSON API? - person Mark Walsh; 04.09.2015
comment
Цитата: Кроме того, объект ресурса МОЖЕТ содержать любой из следующих элементов верхнего уровня: атрибуты: объект атрибутов, представляющий некоторые данные ресурса. отношения: объект отношений, описывающий отношения между ресурсом и другими ресурсами JSON API. ссылки: объект ссылок, содержащий ссылки, относящиеся к ресурсу. мета: метаобъект, содержащий нестандартную метаинформацию о ресурсе, которую нельзя представить в виде атрибута или отношения. Также см. бит в объекте отношения ДОЛЖЕН содержать хотя бы одно из следующего... - person aceofspades; 04.09.2015
comment
Ты мой герой. Работал как шарм. Ваше решение имеет абсолютный смысл, но мой мозг сильно сбился с толку. Спасибо! - person Malabar Front; 04.09.2015