Как десериализовать нулевой ответ в js-data

Метод find в js-data-http имеет особый случай, когда item будет ложным, тогда он отклонит обещание, в противном случае он вернется item, Моя проблема в том, что некоторые фальшивые ценности (0, null, '') являются действительными ответами от моего API.

Например, если я запрашиваю отношение, которое не было установлено, то API отвечает данными null завернутый в конверт jsonapi. Это соответствует спецификации jsonapi для извлечения пустых отношений:

{
  "links": {
    "self": "/articles/1/relationships/author",
    "related": "/articles/1/author"
  },
  "data": null
}

Я использую библиотеку js-data-jsonapi, чтобы помочь js-data и jsonapi обойтись. В этой библиотеке DeSerializer разворачивает конверт jsonapi. В этот момент JS-данные снова отвечают, а развернутые данные null это значение для item в методе разрешения поиска обещания, который заставляет js-data-http отклонить обещание.

Прямо сейчас я использую специальный случай в js-data-jsonapi для десериализации пустых данных в виде массива, потому что в JS Arrays верны. Но тогда я должен в особом случае обнаруживать отношения hasOne, где теперь пустой массив должен быть преобразован в нуль.

Это кажется слишком сложным способом обработки вещей, есть ли лучший способ, который я пропускаю?

Моя установка использует:

"angular": "1.5.8",
"js-data": "2.9.0",
"js-data-angular": "3.2.1",
"js-data-jsonapi": "0.0.0-alpha.21",

0 ответов

Другие вопросы по тегам