我很高兴有几个库可以使用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

                }
            );

07-23 01:56