【问题标题】:Consuming hateoas restful webservice with javascript (framework)使用 javascript(框架)使用 hatoas RESTful Web 服务
【发布时间】:2013-06-19 10:59:26
【问题描述】:

是否可以通过 (a) javascript(框架 - 例如 angularjs)使用 hatoas 类型的 restful web 服务?我想客户端需要实现相当多的逻辑才能到达实际的端点。任何反馈将不胜感激。谢谢!

【问题讨论】:

  • 这些天 SO 有什么问题?很想知道为什么有人投票结束这个问题...
  • 这就是我不相信 HATEOAS 的原因。我的答案更适合作为 cmets 所以删除了答案。
  • 这是一个答案,如果您作为出口商估计,目前不可能使用 hatoas 宁静的 Web 服务。也许我误解了你。我目前的印象是,hateoas 服务非常吸引人,但目前还没有切实可行的解决方案来通过 JavaScript 使用它们。我想这也是 Darrel 想说的,但我还不愿意接受这个答案。
  • 这不是不可能的。对我来说,这是毫无意义的——长话短说——我不相信 HATEOAS。但是你应该能够做到这一点,只需要自己编写代码。这取决于您如何公开链接,您可以使用 Collection+json 或 HAL 或使用 RFC 5988。

标签: rest angularjs asp.net-web-api restful-architecture


【解决方案1】:

这里的至少部分问题是您的 API 需要返回支持结构化链接的媒体类型(通常的“REST”API 默认为 application/jsonapplication/xml 不支持)。要获得此支持,请查看 HALJSONAPI 项目。

有了结构化链接定义,使用起来就容易多了 - HAL 有几个库可以使用它,包括一个 javascript 库

https://github.com/mikekelly/backbone.hal

对于感兴趣的客户,请查看HAL Talk demo

【讨论】:

    【解决方案2】:

    是的,这是可能的。 Javascript 只是另一个用户代理。

    是的,还有工作要做。不,我不知道有任何框架可以为您执行此操作。我已经编写了用于支持桌面上的超媒体驱动应用程序的工具,并且我认为生成支持基于超媒体的应用程序的基础架构并不需要大量工作。

    挑战不在于工具,而在于它是一种非常不同的构建应用程序的方法。这需要一些时间来适应。

    在相关的说明中,浏览器/JS 领域正在进行一些工作,这将使在客户端上执行超媒体驱动的应用程序变得更加容易。见NavigatingController。 目前一个 JS 用户代理只能管理 javascript 链接。使用 NavigatingController 也可以拦截 HTML 链接,使 JS 驱动的应用程序在浏览器中更加无缝。

    【讨论】:

    • 我的理解是,一个hateoas Web 服务只暴露了一个端点。要到达特定端点,客户端必须与 Web 服务对话并通过它接收到的 uri 导航到该特定端点。恕我直言,这需要客户端的一些“参与”逻辑。我希望看到一个 JS 实现来实现这一点(最好使用像 angular.js 这样的框架)。希望这是有道理的。
    猜你喜欢
    • 2017-01-12
    • 2018-03-29
    • 1970-01-01
    • 2018-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多