将XML发布回服务器Rails

时间:2013-04-05 13:10:44

标签: ruby-on-rails xml ruby-on-rails-3

在我想知道是否有人能够指出一些在处理XML(发布/放置请求)时显示最佳实践的资源或者可能显示示例之前,我从未这样做过。

例如,我尝试将一些XML回发到google contacts api以更新联系人

我目前所做的是将传入的XML保存到我的模型中,编辑功能在应用程序中执行,然后保存回模型。一切都更新后我想将更新后的联系回发回API中的api格式,目前我只更新电子邮件地址和人名

这是对

的PUTS请求
https://www.google.com/m8/feeds/contacts/userEmail/full/{contactId}

有人可以举例说明他们会怎么做吗?

要返回的XML是

PUT /m8/feeds/contacts/default/full/<var>contactId</var>
If-Match: <var>Etag</var>

<entry gd:etag='<var>Etag</var>'>
<id>http://www.google.com/m8/feeds/contacts/<var>userEmail</var>/base/<var>contactId</var></id>
<updated>2008-02-28T18:47:02.303Z</updated>
<category scheme='http://schemas.google.com/g/2005#kind'
term='http://schemas.google.com/contact/2008#contact'/>
<gd:name>
<gd:givenName>New</gd:givenName>
<gd:familyName>Name</gd:familyName>
<gd:fullName>New Name</gd:fullName>
</gd:name>
<content type='text'>Notes</content>
<link rel='http://schemas.google.com/contacts/2008/rel#photo' type='image/*'
href='https://www.google.com/m8/feeds/photos/media/<var>userEmail</var>/<var>contactId</var>'/>
 <link rel='self' type='application/atom+xml'
href='https://www.google.com/m8/feeds/contacts/<var>userEmail</var>/full/<var>contactId</var>'/>
<link rel='edit' type='application/atom+xml'
href='https://www.google.com/m8/feeds/contacts/<var>userEmail</var>/full/<var>contactId</var>'/>
<gd:phoneNumber rel='http://schemas.google.com/g/2005#other'
primary='true'>456-123-2133</gd:phoneNumber>
<gd:extendedProperty name='pet' value='hamster'/>
<gContact:groupMembershipInfo deleted='false'
href='http://www.google.com/m8/feeds/groups/<var>userEmail</var>/base/<var>groupId</var>'/>
</entry>
</pre>

感谢任何建议

由于

1 个答案:

答案 0 :(得分:1)

我对谷歌联系人API没有任何了解,但使用Net::HTTPHTTParty或类似内容对Rails中的POST / PUT / GET非常简单。

在HTTParty中,我很确定它是这样的:

require 'httparty'
response = HTTParty.put("https://www.google.com/m8/feeds/contacts/userEmail/full/{contactId}",
             :body => { :xml => xml_data })