2016-12-17 13 views
0

Я ценю, что существует несколько библиотек для работы с ссылками HATEOAS в формате HAL, но я хотел бы узнать больше о доступе к _embedded resource (s) и его _links в большинстве основной - или, я думаю, я должен сказать наивно.Как получить доступ к HAL _links внутри _embedded ресурсов с помощью JavaScript/AngularJS

В качестве примера, у меня есть следующий "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 («создать»), я правду без проблем.

Если я попытаюсь сделать что-то более предприимчивое, как usersResource. $ Request(). $ Get ("userList") Я возвращаю объект ресурса, но я изо всех сил пытаюсь использовать этот объект.

Например, если я хотел проверить, существует ли ссылка для пароля для моего администратора, можно ли использовать возвращаемый объект ресурса и вызвать $ hasLink?

Спасибо за комментарии!

ответ

0

Так что в любом случае, я только позже заметил, что объект, возвращаемый 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 

       } 
      ); 

 Смежные вопросы

  • Нет связанных вопросов^_^