0

我正在使用一个 Rails 应用程序,该应用程序目前只是对外部 RESTful API 进行 get 调用并解析接收到的 XML 数据以将它们存储在本地数据库中。此应用程序还需要能够使用 XML 有效负载对外部 API 进行 post 和 put 调用。

我们需要从不同的数据库表中创建几个这样的有效负载(用于不同的调用)。如何自动化创建 XML 有效负载的过程以将它们用作 POST 和 PUT 调用的一部分?

使用:Ruby on Rails、XML、MySql 和外部 RESTful API

4

1 回答 1

1

您可以使用优秀的 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)

于 2013-09-26T19:43:28.110 回答