2016-04-14 11 views
1

У меня такой формат ответа от внутреннего интерфейса (URL-адрес является http://localhost:8080/App/api/currency):Угловое ресурсов с Hateoas и приложения/HAL + JSON

{ 
    "content": [ 
    { 
     "code": "CHF", 
     "_links": [ 
     { 
      "rel": "self", 
      "href": "http://localhost:8080/App/api/currency/CHF" 
     } 
     ] 
    }, 
    { 
     "code": "EUR", 
     "_links": [ 
     { 
      "rel": "self", 
      "href": "http://localhost:8080/App/api/currency/EUR" 
     } 
     ] 
    }, 
    { 
     "code": "USD", 
     "_links": [ 
     { 
      "rel": "self", 
      "href": "http://localhost:8080/App/api/currency/USD" 
     } 
     ] 
    }, 
    { 
     "code": "AUD", 
     "_links": [ 
     { 
      "rel": "self", 
      "href": "http://localhost:8080/App/api/currency/AUD" 
     } 
     ] 
    }, 
    { 
     "code": "CAD", 
     "_links": [ 
     { 
      "rel": "self", 
      "href": "http://localhost:8080/App/api/currency/CAD" 
     } 
     ] 
    }, 
    { 
     "code": "GBP", 
     "_links": [ 
     { 
      "rel": "self", 
      "href": "http://localhost:8080/App/api/currency/GBP" 
     } 
     ] 
    }, 
    { 
     "code": "NZD", 
     "_links": [ 
     { 
      "rel": "self", 
      "href": "http://localhost:8080/App/api/currency/NZD" 
     } 
     ] 
    }, 
    { 
     "code": "JPY", 
     "_links": [ 
     { 
      "rel": "self", 
      "href": "http://localhost:8080/App/api/currency/JPY" 
     } 
     ] 
    }, 
    { 
     "code": "SEK", 
     "_links": [ 
     { 
      "rel": "self", 
      "href": "http://localhost:8080/App/api/currency/SEK" 
     } 
     ] 
    }, 
    { 
     "code": "NOK", 
     "_links": [ 
     { 
      "rel": "self", 
      "href": "http://localhost:8080/App/api/currency/NOK" 
     } 
     ] 
    }, 
    { 
     "code": "ISK", 
     "_links": [ 
     { 
      "rel": "self", 
      "href": "http://localhost:8080/App/api/currency/ISK" 
     } 
     ] 
    }, 
    { 
     "code": "DKK", 
     "_links": [ 
     { 
      "rel": "self", 
      "href": "http://localhost:8080/App/api/currency/DKK" 
     } 
     ] 
    } 
    ], 
    "_links": [ 
    { 
     "rel": "self", 
     "href": "http://localhost:8080/App/api/currency" 
    } 
    ] 
} 

Чтобы запросить его с Угловое я использую $resource's метод запроса. Но эта структура ответа не работает с $resource:

  • запрос ожидает массив. Здесь у меня есть один объект
  • элементы массива рассматриваются как отдельные ресурсы

Как я могу сделать этот ответ работы с $resource т.е. поручить ему принимать content как фактические данные для построения $resource объектов. Или есть какие-то надежные решения?

+0

Вы можете добавить ответный трансформатор. Ответ на самом деле не «hal + json» BTW. Конфигурация, вероятно, отсутствует. – zeroflagL

ответ

0

Один из способов заключается в использовании $promise явно:

return $resource(url).get().$promise.then(function(response){ 
    return response.content; 
}); 

Конечно, при использовании $resource таким образом, нет большой разницы с $http и преимущества использования $resource над $http, как непосредственно связывать результат область, теряются.

+0

Я думаю, вы пропустили мою точку зрения: я не клиентский код $ resource для этого вручную + я не разрешаю «элементы массива рассматриваются как отдельные ресурсы» – dragonfly