我很欣赏有几个库可以使用HAL格式的HATEOAS链接,但我希望了解更多关于访问_embedded资源及其最基本的_links - 或者我想我应该说天真的方式。
举个例子,我有以下“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?
感谢您的评论!
答案 0 :(得分:0)
所以无论如何,我后来才注意到usersResource返回的对象。$ request()。$ get(“userList”)调用是一个数组。因此,只需循环遍历数组即可获得$ hasLink等方法。在我的情况下,我只需要到达第一个[索引0]对象。这就是诀窍:
usersResource.$request().$get("userList")
.then(function (users) {
vm.users = users;
console.log("$hasLink 'delete'");
console.log(users[0].$hasLink("delete")); //return true
}
);