基本HATEOAS使用角度 - 加载入口点

时间:2013-07-22 17:15:25

标签: javascript rest angularjs hateoas

我正在尝试干净地实现HATEOAS风格的REST-api。我的服务器端看起来有点像这样(伪HTTP和伪JSON):

GET /api-entry-point

返回(使用适当的Content-Type和所有爵士乐):

{
  "_links": {
    "login": "/login",
    "users": "/someapi-part/users",
    "orders": "/other-part/orders"
  }
}

因此,它是应用程序的单一入口点(_links符合HAL)。任何类型的客户都会GET /api-entry-point知道从哪里找到用户或订单资源。一个典型的事情是登录,然后检索用户列表。

对于我的角度应用程序,这意味着获取这些链接是首先要做的事情。我使用自定义服务(基于$http)返回承诺进行HTTP调用。这个承诺需要在应用程序启动时解决一次。如何使用angular?确保这种情况发生?

我查看了resolve属性(在$routeProvider上),但让每条路线都依赖于/api-entry-point的决心似乎很乏味和愚蠢。

我也检查了module.run - 但它也没有解决承诺。

我该如何解决这个问题?有办法还是我需要不同的方法/框架?

1 个答案:

答案 0 :(得分:0)

  

这个承诺需要在应用程序启动时解决一次。

也许我不太了解它,但你不能只做以下事情吗?

在应用第一页的某个控制器中:

yourHttpService.getLinks('http://base-uri').then(links) {
   // do something with the links ...
}

在我们的项目中,我们构建了一个指令而不是一个服务。你传入一个uri,该指令在作用域上公开了数据,链接等......所以你可以在你的控制器或html中使用它......