将自定义API转换为Ruby on Rails ActiveResource 我有一套嵌入式设备,用C++编写的软件。与设备通信的API很简单:获取/设置/获取参数和信号

将自定义API转换为Ruby on Rails ActiveResource 我有一套嵌入式设备,用C++编写的软件。与设备通信的API很简单:获取/设置/获取参数和信号,c++,ruby-on-rails,xml-rpc,activeresource,C++,Ruby On Rails,Xml Rpc,Activeresource,我想实现一个通用的web应用程序,从一个点访问所有设备 我的想法是向设备添加XMLRPC接口,然后使用ActiveResource从web服务器访问设备。这种组合似乎根本没有在实践中使用 我可以自由选择设备内部的任何协议。您的建议是什么?如果您已经在考虑XML RPC,我假设您在设备上运行某种web服务器。我可能会选择RESTfulWeb服务而不是XMLRPC。如果精心设计,您可以在Rails应用程序上提供相应的服务 例如: http://somedevice/signals.json-获取所有

我想实现一个通用的web应用程序,从一个点访问所有设备

我的想法是向设备添加XMLRPC接口,然后使用ActiveResource从web服务器访问设备。这种组合似乎根本没有在实践中使用


我可以自由选择设备内部的任何协议。您的建议是什么?

如果您已经在考虑XML RPC,我假设您在设备上运行某种web服务器。我可能会选择RESTfulWeb服务而不是XMLRPC。如果精心设计,您可以在Rails应用程序上提供相应的服务

例如:

http://somedevice/signals.json
-获取所有信号


http://yourrailsapp/somedevice/signals.json
-获取某个设备的信号;如果这更有意义的话,您可以在这里使用id(
http://yourrailsapp/devices/1/signals.json
)。

您可能在Rails社区中找不到太多XML RPC内容。Rails本身确实将您推向RESTful web服务。特别是面向资源的RESTful体系结构。虽然有很多,但归根结底是使用http方法(get、put、post、delete),而不是传递参数和一些智能URL。

在这一点上,我没有在设备上运行任何web服务器(服务)。我在考虑添加一些非常轻量级的、甚至更好的可嵌入性的东西,可以讲一个Rails可以理解的协议。这些设备只执行内部自定义API和web服务之间的转换。是否有一个C/C++库可以为JSON服务?不要过于关注数据格式本身。XML很好,我只是喜欢尽可能使用json。我只对XML RPC有点熟悉,但从我理解的,它需要HTTP(因此我假设在您的设备上运行某种Web服务器)。我将使用C++ HTTP库,并使用它实现REST Web服务。我将使用最容易与Rail 3集成的格式。