如何使用JavaScript / AngularJS访问_embedded Resources中的HAL _link



我很感激有几个图书馆可以与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
                }
            );

最新更新