6

我一直在试验和研究用于 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 的工具和一些在主干.js (http://backbonejs.org 目前已关闭。)。jquery 的东西对我来说似乎完全脱节。如果有好的 jquery REST 工具,我对它们持开放态度,我只需要指向有关如何使用它们开发连贯且可管理的应用程序的文档的指针。

基本目标

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

另一种说法:

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

是否有一个功能齐全的 javascript REST 客户端可以指点我。谢谢。

4

6 回答 6

2

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

Backbonejs.org 的替代 URLhttp ://documentcloud.github.com/backbone/

您可能知道,Backbone 根据您的数据创建对象,例如集合和模型。

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

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

JSON 模式验证器https ://github.com/garycourt/JSV

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

于 2012-05-16T17:11:05.037 回答
2

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

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 超模式][1](另见 [JSON 模式][2])

于 2013-12-24T21:54:26.950 回答
1

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

于 2012-05-16T17:15:41.437 回答
0

我认为找到一个好的客户端库的问题在于我们(就像在 Web 社区中一样)还没有对 REST 以及如何构建 SERVER 库有一个完全充实和完整的理解。

HAL ( http://stateless.co/hal_specification.html ) 等技术可能会提供最好的前进方向。当您拥有一组提交给 HATEOAS ( http://en.wikipedia.org/wiki/HATEOAS ) 的 API 并且真正以允许超链接驱动应用程序的方式工作时,您就有了构建 VERY 的方法无需重新构建每个对象并重新考虑每个业务规则的轻量级前端。

于 2013-04-01T18:48:41.817 回答
0

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

免责声明:我们写的。

于 2015-03-10T14:41:36.010 回答
0

如果你不想要一个完整的框架,试试这个:https ://github.com/jpillora/jquery.rest它很新,所以请发布问题、错误、功能请求!

于 2013-01-18T12:33:47.603 回答