3

我正在尝试对 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并且知道在哪里可以找到用户或从那里订购资源。典型的事情是登录,然后检索用户列表。

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

我已经查看了resolve属性 (on $routeProvider),但是让每条路线都依赖于/api-entry-point.

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

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

4

1 回答 1

0

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

也许我不太明白,但你不能只做以下吗?

在应用程序首页的某个控制器中:

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

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

于 2013-10-14T14:26:28.933 回答