我正在查看以下 URL,以了解流行的 ruby gem 如何映射将 XML 返回到 ruby 对象的 Restful 端点:
https://github.com/tapajos/highrise/blob/master/lib/highrise/base.rb
我看到他们正在使用 ActiveResource::Base,它在幕后神奇地做到了这一点。
因此,您可以从 URI 中获取某种 xml,例如:
<person>
<id type="integer">1</id>
<first-name>John</first-name>
<last-name>Doe</last-name>
<title>Stand-in</title>
<background>A popular guy for random data</background>
<linkedin_url>http://us.linkedin.com/in/john-doe</linkedin_url>
<company-id type="integer">5</company-id>
<company-name>Doe Inc.</company-name>
<created-at type="datetime">2007-02-27T03:11:52Z</created-at>
<updated-at type="datetime">2007-03-10T15:11:52Z</updated-at>
<visible-to>Everyone</visible-to>
..
</person>
所以使用 ActiveResource,它只是将它映射到一个 ruby 对象或返回一个哈希?
它返回的对象的定义在哪里?
就像标签资源代码在这里:https ://github.com/tapajos/highrise/blob/master/lib/highrise/tag.rb
module Highrise
class Tag < Base
def ==(object)
(object.instance_of?(self.class) && object.id == self.id && object.name == self.name)
end
end
end
此外,如果性能是一个大问题,是否还会使用 activeresource 或者是否有更快的方法来解析 xml?