Как десериализовать нулевой ответ в 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",