我正在尝试干净地实现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
- 但它也没有解决承诺。
我该如何解决这个问题?有办法还是我需要不同的方法/框架?
答案 0 :(得分:0)
这个承诺需要在应用程序启动时解决一次。
也许我不太了解它,但你不能只做以下事情吗?
在应用第一页的某个控制器中:
yourHttpService.getLinks('http://base-uri').then(links) {
// do something with the links ...
}
在我们的项目中,我们构建了一个指令而不是一个服务。你传入一个uri,该指令在作用域上公开了数据,链接等......所以你可以在你的控制器或html中使用它......