我很感激有几个图书馆可以与HAL格式使用Hateoas Linkrels,但我很想了解有关访问_embedded资源及其_links及其_links的更多信息 - 猜猜我应该说幼稚 - 方式。
举例来说,我有以下" usersresource"($ http)春季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("用户列表")或用户resource。$ haslink(" create"),我会毫无问题。
如果我尝试使用更冒险的东西,例如usersresource。$ request()。$ get("用户列表"),我会恢复资源对象,但我正在努力以任何有意义的方式使用该对象。
例如,如果我想检查管理用户的"密码"链接是否存在,我有什么办法可以使用返回的资源对象并在其中调用$ 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
}
);