我即将为RESTful Web服务创建一个基于JavaScript的客户端。客户端应该便于访问web服务并将一些原始HTTP调用包装成更多“糖果”函数和对象。
我打算将此客户端库用于基于node.js的应用程序以及PhoneGap。所以,我不必关心同源政策。但是,在PhoneGap和node.js中调度HTTP请求完全不同。
现在我想知道如何在JavaScript中实现一个客户端库,它可以在不同的“平台”之间移植(node.js,PhoneGap,甚至可能是后来的浏览器)?
提前致谢
答案 0 :(得分:1)
Phonegap基本上只是一个浏览器。因此,如果您想要绕过相同的原始策略,您可能需要查看不同的phonegap插件(GapSocket)来处理您自己的通信。
答案 1 :(得分:1)
您可以试试这个emulation of XmlHttpRequest under nodejs,但您可能还需要特殊情况下的客户端库在PhoneGap(以及其他基于浏览器的JavaScript平台)和nodejs下运行。
执行此操作的一种方法是检查“window”的内容,默认情况下在nodejs下是未定义的,或者是“global”(在浏览器中未定义)。
修改
看来我太快说了(写了)。查看abstract-http-request,虽然没有明确支持PhoneGap,但可能会给你足够的帮助。
答案 2 :(得分:1)
REST是一种用于设计Web服务的架构风格。 Web服务不必使用HTTP来实现RESTful,尽管其中很大一部分都是RESTful。要成为RESTful,基于HTTP的Web服务必须严格利用HTTP的资源名称(URI),操作(GET,PUT,DELETE等),错误代码(404,200,...)等。这意味着任何(基于HTTP的)REST客户端框架都可以与任何(基于HTTP的)REST服务器框架互操作:如果没有,可能会出现问题。因此,您的问题会分解为找到一个好的通用REST客户端框架和一个或多个通用REST服务器框架。
对于基于node.js的Web服务,请查看Geddy服务器端框架(此处为documentation)。
对于PhoneGap REST客户端,您可以尝试Force.com JavaScript REST Toolkit(并参阅this extension)。
免责声明:我只阅读了这些框架,而不是使用它们。