我正在使用一个 Rails 应用程序,该应用程序目前只是对外部 RESTful API 进行 get 调用并解析接收到的 XML 数据以将它们存储在本地数据库中。此应用程序还需要能够使用 XML 有效负载对外部 API 进行 post 和 put 调用。
我们需要从不同的数据库表中创建几个这样的有效负载(用于不同的调用)。如何自动化创建 XML 有效负载的过程以将它们用作 POST 和 PUT 调用的一部分?
使用:Ruby on Rails、XML、MySql 和外部 RESTful API
我正在使用一个 Rails 应用程序,该应用程序目前只是对外部 RESTful API 进行 get 调用并解析接收到的 XML 数据以将它们存储在本地数据库中。此应用程序还需要能够使用 XML 有效负载对外部 API 进行 post 和 put 调用。
我们需要从不同的数据库表中创建几个这样的有效负载(用于不同的调用)。如何自动化创建 XML 有效负载的过程以将它们用作 POST 和 PUT 调用的一部分?
使用:Ruby on Rails、XML、MySql 和外部 RESTful API
您可以使用优秀的 HTTParty 库。
这个答案在这里提供了一个很好的例子来说明如何做到这一点,我会尝试用一些代码来总结他们的。你想做这样的事情:
require 'httparty'
class Webservice
include HTTParty
format :xml
base_uri 'mysite.com'
default_params :authorization => 'xxxxxxx'
def self.add_candidate(candidate_hash={})
post('/test.xml', :body => candidate_hash)
end
end
其中的 Candidate_hash 看起来像这样:
:Candidate => {
:FirstName => first_name,
:LastName => last_name,
:Email => email,
:Gender => gender,
}
本质上,HTTParty 将获取 Ruby 哈希并在发布/放置之前自动将其转换为 XML(或 JSON)