是否有完全实现的REST javascript客户端?

时间:2012-05-16 16:55:24

标签: javascript json rest schema

我一直在尝试和研究用于RESTful Web服务的javascript客户端。几乎所有我见过的东西似乎都局限于客户端中的重新创建模型定义,并在简单(非相关)模型上进行CRUD。

我在寻找什么

  • 在给定服务器API提供的JSONREST模式的URI的情况下,能够在客户端中动态创建模型(和/或代理和/或存储)
  • 能够本地处理关系(即,无需创建一堆自定义函数或覆盖许多内置功能)。我说的是1-> n,1-> 1,n-> 1和n-> m关系。
  • 使用ExtJS或Dojo等完整功能客户端框架可以更好地工作。

我尝试过什么

  • ExtJS 4.1:优秀的小部件集,能够完全编程布局,'ajax'/'rest'代理可以为简单模型提供开箱即用的功能。没有我能找到的IRC或开发社区,对GPL论坛的响应能力有限。
  • Dojo [current]:需要自定义覆盖JsonRestStore才能使用基本模型。伟大的小部件,难以完全避免使用HTML。
  • 我还看了各种基于jquery的工具,还有一点关于backbone.js(http://backbonejs.org目前正在关注。) jquery的东西似乎完全脱节了。如果有很好的jquery REST工具,我会向他们开放,我只需要指向如何用它们开发连贯和可管理的应用程序的文档。

基本目标

  • 开发可随时修复且“干”的Web客户端应用程序。也就是说,在相关的“类”中,{param1:'asdf',param2:30,...}的复制粘贴很少。理想情况下,如果在服务器上定义它,客户端应该从REST API获取它。如果它是在客户端中定义的,则客户端的其他部分应该能够继承/扩展该定义。

另一种说法:

  • 大多数JS框架都遵循MVC模式。对我来说,这是愚蠢的,因为我的“M”已经在服务器上以及一些“C”。我希望我的客户端成为“Vc”,只重新创建服务器端模型,这是异步操作所必需的,重点是UI表示和用户操作。这意味着理想情况下,“MVC”中的“M”都不会被硬编码到客户端中。

是否有人可以指向我的全功能JavaScript REST客户端。感谢。

5 个答案:

答案 0 :(得分:2)

您最有可能想看的几个链接:

Backbonejs.org的替代网址http://documentcloud.github.com/backbone/

如您所知,Backbone会根据您的数据创建像集合和模型这样的对象。

关系映射https://github.com/PaulUithol/Backbone-relational/

如果您想在Backbone中进行关系数据映射,请点击上面的链接

JSON架构验证器https://github.com/garycourt/JSV

如果您担心确保遵守某个JSON模式,这很方便,您可以通过覆盖validate方法扩展Backbone.js以验证模型客户端。

答案 1 :(得分:2)

查看我的Javascript JSON-Hyper-Schema客户端。它使用Angular动态构建HTML客户端应用程序,方法是使用OPTIONS方法解析在给定资源端点提供的Schema。

https://github.com/bpanahij/passportedu_schema/tree/master/client

我一直在使用JSON Hyper Schema开发HATEOAS(超媒体作为应用程序状态引擎)API。 您可以转到下面的URL,浏览,注册,登录并执行某些操作。

看看,这里: http://direct.psprt.com:8081/

到目前为止,我还开源了我的实际API代码: https://github.com/bpanahij/passportedu_schema

随意查看,借阅和评论。

[JSON Hyper Schema] [1](参见[JSON-Schema] [2])

答案 2 :(得分:1)

试试https://github.com/avoidwork/abaaso,我听说过很好的事情。

答案 3 :(得分:0)

我认为找到一个好的客户端库的问题是我们(如在Web社区中)还没有完全充分了解REST以及如何构建SERVER库。

HAL(http://stateless.co/hal_specification.html)等技术可能会提供最佳方向。当你有一组提交到HATEOAS(http://en.wikipedia.org/wiki/HATEOAS)并且确实以允许超链接驱动应用程序的方式工作的API时,你有办法构建非常轻的前端,而不是需要重建每个对象,并重新思考每个业务规则。

答案 4 :(得分:0)

试试restful.js。富有表现力的语法允许资源嵌套,建立在承诺上,并且不会妨碍您。它的灵感来自Restangular,只是它是独立的。

免责声明:我们写了它。