我很高兴有几个库可以使用HAL格式的HATEOAS linkrels,但是我很想学习更多有关以最基本的方式访问_embedded资源及其_link的信息,或者我想我应该说是幼稚的。
例如,我具有以下“ usersResource”($ http)Spring HATEOAS输出:
{
"_embedded":{
"userList":[
{
"username":"admin",
"roles":[
"ADMIN"
],
"_links":{
"self":{
"href":"http://localhost:8081/users/admin"
},
"password":{
"href":"http://localhost:8081/users/admin/password"
},
"delete":{
"href":"http://localhost:8081/users/admin"
}
}
}
]
},
"_links":{
"self":{
"href":"http://localhost:8081/users"
},
"create":{
"href":"http://localhost:8081/users"
}
}
}
如果我运行诸如usersResource。$ hasEmbedded(“ userList”)或usersResource。$ hasLink(“ create”)之类的简单程序,我将毫无问题地实现。
如果我再尝试一些更冒险的事情,例如usersResource。$ request()。$ get(“ userList”),我将获得一个资源对象,但是我正在努力以任何有意义的方式使用该对象。
例如,如果我想检查管理员用户是否存在“密码” linkrel,有什么办法可以使用返回的资源对象并对其调用$ hasLink?
感谢您的评论!
最佳答案
所以无论如何,我后来才注意到,usersResource。$ request()。$ get(“ userList”)调用返回的对象是一个数组。因此,这只是遍历数组以访问$ hasLink等方法的问题。就我而言,我只需要到达第一个[index 0]对象。这达到了目的:
usersResource.$request().$get("userList")
.then(function (users) {
vm.users = users;
console.log("$hasLink 'delete'");
console.log(users[0].$hasLink("delete")); //return true
}
);