#javascript #json #rest #spring-data #hateoas
Вопрос:
У меня есть следующий объект JSON:
{
"_embedded" : {
"carPriceStreams" : [ {
"carClassCurrency" : {
"carClass" : {
"carClass" : {
"code" : "A542",
},
"_links" : {
"car" : {
"href" : "http://localhost:9001/api/car/2"
}
}
},
"creationDate" : "2015-07-01"
},
"_links" : {
"self" : {
"href" : "http://localhost:9001/api/carPriceStreams/1"
},
"carPriceStream" : {
"href" : "http://localhost:9001/api/carPriceStreams/1"
},
"carPrices" : {
"href" : "http://localhost:9001/api/carPriceStreams/1/carPrices"
}
}
},...
Я использую библиотеку JavaScript Traverson и адаптер HAL для Traverson, чтобы получить объект:
traverson.registerMediaType(TraversonJsonHalAdapter.mediaType,
TraversonJsonHalAdapter);
var api = traverson
.from(url "/api")
.jsonHal();
api
.newRequest()
.follow('carPriceStreams')
.getResource(//...
Для каждого carPriceStream я хочу перейти по ссылкам на его автомобиль и получить этот ресурс автомобиля. Как я могу это сделать?
Я уже пробовал
api
.newRequest()
.follow('carPriceStreams', 'car')
.getResource(//...
Но я получаю HalLinkError
.
Комментарии:
1. Считает ли траверсон встроенные элементы ссылками, по которым вы можете перейти?
2. Мое понимание, основанное на этом , — да.
Ответ №1:
Я не пользователь traverson, но ваш car
объект не является прямым потомком carPriceStreams
.
Ты можешь попробовать это ?
.follow('carPriceStreams', 'carClassCurrency', 'carClass', 'car')