用于REST API的可移植Javascript客户端

我即将为REST式Web服务创build一个基于JavaScript的客户端。 客户端应该方便访问web服务,并将一些原始的HTTP调用包装成更多“糖果”function和对象。

我打算将这个客户端库用于基于node.js的应用程序以及PhoneGap。 所以,我不必关心同源政策。 但是,调度HTTP请求在PhoneGap和node.js中是完全不同的。

现在我想知道如何在JavaScript中实现一个客户端库,可以在不同的“平台”(node.js,PhoneGap,也许以后甚至是浏览器)之间移植?

提前致谢

您可以尝试在nodejs下模拟XmlHttpRequest,但您仍然可能需要特殊情况下客户端库在PhoneGap(以及其他基于浏览器的JavaScript平台)和nodejs下运行。

一种方法是检查nodejs下默认未定义的'window'的内容,或者在浏览器中检查(应该)未定义的'global'。

编辑

看来我很快就说(写)了。 查看抽象的http请求 ,虽然没有明确支持PhoneGap,可能会给你足够的工作。

Phonegap基本上只是一个浏览器。 所以,如果你想绕过同样的起源政策,你可能想看看不同的phonegap插件(GapSocket)来处理你自己的沟通。

REST是deviseWeb服务的架构风格。 Web服务不必使用HTTP来实现RESTful,尽pipe它们中的很大一部分都是。 要成为RESTful,基于HTTP的Web服务必须严格利用HTTP的资源名称(URI),操作(GET,PUT,DELETE等),错误代码(404,200,…)等等。 这意味着任何(基于HTTP的)REST客户端框架都可以与任何(基于HTTP的)REST服务器框架进行互操作:如果没有,那么可能是错误的。 所以你的问题分解成寻找一个好的通用REST客户端框架和一个或多个通用的REST服务器框架。

对于基于node.js的Web服务,请查看Geddy服务器端框架(这里是文档 )。

对于PhoneGap REST客户端,您可以尝试Force.com JavaScript REST Toolkit (并查看此扩展 )。

免责声明:我只读过这些框架,没有使用它们。