草庐IT

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

coder 2024-12-28 原文

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












我们不允许提出有关书籍、工具、软件库等建议的问题。您可以编辑问题,以便可以用事实和引用来回答它。


4年前关闭。







Improve this question




我一直在试验和研究 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 客户端可以指点我。谢谢。

    最佳答案

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

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

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

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

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

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

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

    关于javascript - 是否有完全实现的 REST javascript 客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10623170/

    有关javascript - 是否有完全实现的 REST javascript 客户端?的更多相关文章

    1. ruby-on-rails - 如何验证 update_all 是否实际在 Rails 中更新 - 2

      给定这段代码defcreate@upgrades=User.update_all(["role=?","upgraded"],:id=>params[:upgrade])redirect_toadmin_upgrades_path,:notice=>"Successfullyupgradeduser."end我如何在该操作中实际验证它们是否已保存或未重定向到适当的页面和消息? 最佳答案 在Rails3中,update_all不返回任何有意义的信息,除了已更新的记录数(这可能取决于您的DBMS是否返回该信息)。http://ar.ru

    2. ruby - 完全离线安装RVM - 2

      我打算为ruby​​脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn

    3. ruby - 检查数组是否在增加 - 2

      这个问题在这里已经有了答案:Checktoseeifanarrayisalreadysorted?(8个答案)关闭9年前。我只是想知道是否有办法检查数组是否在增加?这是我的解决方案,但我正在寻找更漂亮的方法:n=-1@arr.flatten.each{|e|returnfalseife

    4. ruby - 如何根据特征实现 FactoryGirl 的条件行为 - 2

      我有一个用户工厂。我希望默认情况下确认用户。但是鉴于unconfirmed特征,我不希望它们被确认。虽然我有一个基于实现细节而不是抽象的工作实现,但我想知道如何正确地做到这一点。factory:userdoafter(:create)do|user,evaluator|#unwantedimplementationdetailshereunlessFactoryGirl.factories[:user].defined_traits.map(&:name).include?(:unconfirmed)user.confirm!endendtrait:unconfirmeddoenden

    5. ruby - 检查字符串是否包含散列中的任何键并返回它包含的键的值 - 2

      我有一个包含多个键的散列和一个字符串,该字符串不包含散列中的任何键或包含一个键。h={"k1"=>"v1","k2"=>"v2","k3"=>"v3"}s="thisisanexamplestringthatmightoccurwithakeysomewhereinthestringk1(withspecialcharacterslike(^&*$#@!^&&*))"检查s是否包含h中的任何键的最佳方法是什么,如果包含,则返回它包含的键的值?例如,对于上面的h和s的例子,输出应该是v1。编辑:只有字符串是用户定义的。哈希将始终相同。 最佳答案

    6. ruby-on-rails - Ruby 检查日期时间是否为 iso8601 并保存 - 2

      我需要检查DateTime是否采用有效的ISO8601格式。喜欢:#iso8601?我检查了ruby​​是否有特定方法,但没有找到。目前我正在使用date.iso8601==date来检查这个。有什么好的方法吗?编辑解释我的环境,并改变问题的范围。因此,我的项目将使用jsapiFullCalendar,这就是我需要iso8601字符串格式的原因。我想知道更好或正确的方法是什么,以正确的格式将日期保存在数据库中,或者让ActiveRecord完成它们的工作并在我需要时间信息时对其进行操作。 最佳答案 我不太明白你的问题。我假设您想检查

    7. ruby - 检查日期是否在过去 7 天内 - 2

      我的日期格式如下:"%d-%m-%Y"(例如,今天的日期为07-09-2015),我想看看是不是在过去的七天内。谁能推荐一种方法? 最佳答案 你可以这样做:require"date"Date.today-7 关于ruby-检查日期是否在过去7天内,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/32438063/

    8. ruby - 如何验证 IO.copy_stream 是否成功 - 2

      这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下

    9. ruby - 是否可以覆盖 gemfile 进行本地开发? - 2

      我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI

    10. ruby - 在 Windows 机器上使用 Ruby 进行开发是否会适得其反? - 2

      这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby​​-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub

    随机推荐