我正在尝试干净地实现 HATEOAS 风格的 REST-api。我的服务器端看起来有点像这样(伪 HTTP 和伪 JSON):
GET /api-entry-point
返回(具有正确的内容类型和所有爵士乐):
{
"_links": {
"login": "/login",
"users": "/someapi-part/users",
"orders": "/other-part/orders"
}
}
因此,它是应用程序的单一入口点(_links
与 HAL 一致)。任何类型的客户端都会 GET/api-entry-point
并知道在哪里可以找到用户或从那里订购资源。典型的情况是登录,然后检索用户列表。
对于我的 Angular 应用程序,这意味着获取这些链接是首先要做的事情。我使用一个自定义服务(基于 $http
),它返回进行 HTTP 调用的 promise 。这个 promise 需要在应用程序启动时解决一次。我如何确保使用 Angular 发生这种情况?
我查看了 resolve
属性(在 $routeProvider
上),但让每条路由都依赖于 /的解析似乎乏味且愚蠢api 入口点
.
我还检查过module.run
- 但它也没有解决 promise 。
如何解决这个问题?有办法还是我需要不同的方法/框架?
最佳答案
This promise needs to resolve, once, at the application start.
也许我不太明白,但你不能执行以下操作吗?
在应用程序首页上的某些 Controller 中:
yourHttpService.getLinks('http://base-uri').then(links) {
// do something with the links ...
}
在我们的项目中,我们构建了指令而不是服务。您传入一个 uri,指令在范围内公开数据、链接等...,以便您可以在 Controller 或 html 中使用它...
关于javascript - 使用 Angular 的基本 HATEOAS - 加载入口点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17793496/