Javascript 使用角度加载入口点的基本HATEOAS
我正在尝试对HATEOAS风格的RESTAPI进行干净的实现。我的服务器端看起来有点像这样(在伪HTTP和伪JSON中): 返回(具有适当的内容类型和所有内容): 因此,它是应用程序的单一入口点(链接符合)。任何类型的客户机都将Javascript 使用角度加载入口点的基本HATEOAS,javascript,rest,angularjs,hateoas,Javascript,Rest,Angularjs,Hateoas,我正在尝试对HATEOAS风格的RESTAPI进行干净的实现。我的服务器端看起来有点像这样(在伪HTTP和伪JSON中): 返回(具有适当的内容类型和所有内容): 因此,它是应用程序的单一入口点(链接符合)。任何类型的客户机都将获取/api入口点,并知道在哪里可以找到用户或从那里订购资源。典型的做法是登录,然后检索用户列表 对于我的angular应用程序,这意味着获取这些链接是第一件要做的事情。我使用一个定制服务(基于$http)返回一个承诺进行http调用。这个承诺需要在应用程序启动时解决一次
获取/api入口点
,并知道在哪里可以找到用户或从那里订购资源。典型的做法是登录,然后检索用户列表
对于我的angular应用程序,这意味着获取这些链接是第一件要做的事情。我使用一个定制服务(基于$http
)返回一个承诺进行http调用。这个承诺需要在应用程序启动时解决一次。我如何使用angular确保发生这种情况
我已经查看了resolve
属性(在$routeProvider
上),但是让每个路由依赖于/api入口点的解析似乎既乏味又愚蠢
我也检查过了,但它也不能解决承诺
我如何解决这个问题?有没有办法或者我需要一个不同的方法/框架
这个承诺需要在应用程序启动时解决一次
也许我不太明白,但你就不能这样做吗
在应用程序第一页的某些控制器中:
yourHttpService.getLinks('http://base-uri').then(links) {
// do something with the links ...
}
在我们的项目中,我们构建了一个指令而不是一个服务。您传入一个uri,该指令将公开数据、链接等。。。在作用域上,以便您可以在控制器或html中使用它…以便您的自定义服务在整个应用程序中替换$http
?我觉得这有点难以理解。
{
"_links": {
"login": "/login",
"users": "/someapi-part/users",
"orders": "/other-part/orders"
}
}
yourHttpService.getLinks('http://base-uri').then(links) {
// do something with the links ...
}