标签:
其实ruby写api程序是非常简单,前提是api本身比较规范,而不是乱七八糟的。。
class ApiDemo # 定义接口 API_QERUY = [ :userAdd # 用户资料添加 ] # 实现幽灵方法 def method_missing(method_name, *args, &block) API_QERUY.each do |v| if v.to_s == method_name.to_s return api_request(v.to_s, args.first) end end super end # 返回的结果解析,这里返回的是xml,所以使用Nokogiri这个gem来解析xml,非常方便。 def api_request(operation, argv) query = "" argv.each do |a| query += "&" + a.first.to_s + "=" + a.last.to_s end uri = URI.escape("?version=1&type=xml&key="+api_key + query) @doc = Nokogiri::HTML(open(api_url + operation + uri)) puts @doc.to_s if Rails.env.development? # 开发模式输出结果,便于调试 self end # 获取返回的code def code if @doc @doc.at("code").content.to_i end end # 判断返回结果是否成功 def success? if @doc self.code == 200 end end end
如何调用呢
ApiDemo.new.userAdd(username: ‘moli‘).success?
如果要添加更多的api,则可以在
API_QERUY
中添加即可
标签:
原文地址:http://my.oschina.net/moli/blog/426051