文档章节

ruby 编写api程序

moli
 moli
发布于 2015/06/07 20:51
字数 232
阅读 268
收藏 1

其实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

中添加即可


© 著作权归作者所有

共有 人打赏支持
moli

moli

粉丝 112
博文 13
码字总数 2969
作品 1
深圳
程序员
私信 提问
加载中

评论(6)

moli
moli

引用来自“独孤青冥”的评论

果断差评,一堆代码,基本无文字。。。话说我的风格就是基本只有文字木有代码1321
下次写博客的时候,可能只有图片呢
独孤青冥
独孤青冥
果断差评,一堆代码,基本无文字。。。话说我的风格就是基本只有文字木有代码1321
Websited
Websited

引用来自“moli”的评论

引用来自“张涛OSC”的评论

差评,居然就这么一堆代码就算博客了20

djh
moli
moli

引用来自“张涛OSC”的评论

差评,居然就这么一堆代码就算博客了20
kymjs张涛
kymjs张涛
差评,居然就这么一堆代码就算博客了20
已销号
已销号
M
[转载]各种编程语言介绍

http://www.cnpack.org/showdetail.php?id=252&lang=zh-cn 各种语言的介绍 Table of contents [showhide] 1 各种语言的介绍(第二版) 1.1 各种语言的选择 1.2 各种语言的选择 2 我为什么选择...

mallon
2012/06/29
2.2K
0
CommonJS

CommonJS API定义很多普通应用程序(主要指非浏览器的应用)使用的API,从而填补了这个空白。它的终极目标是提供一个类似Python,Ruby和Java标 准库。这样的话,开发者可以使用CommonJS API编...

匿名
2010/09/28
24.8K
0
10 个必备而且非常有用的 Ruby on Rails 4 Gems

Ruby on Rails框架是一个用于开发Web应用程序的非常强大的工具。 它配备了大量的内置功能,有助于加速你的Web应用程序的开发,如智能路由和对象 - 关系映射器,全都采用了MVC模式。 Rails被设...

oschina
2014/07/14
4K
8
Ruby FFI

Ruby 解析器的性能一般,在一些对性能要求很高的场合我们必须用C语言来编写,然后使用Ruby去调用C库。但是,Ruby调用C库并不是一件轻松的事,需要你对Ruby的内部数据结构有比较深入的了解,甚...

匿名
2008/11/03
1K
0
9 大跨平台移动 App 开发工具推荐

如今,移动应用开发已经变得越来越重要,开发人员面临最大的挑战之一就是在多个平台上运行应用程序。最新的应用程序代码支持“一次编写,到处运行”(WORA)的概念,即只要在一个平台上编写代...

mickelfeng
2017/10/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

网络编程

第14天 网络编程 今日内容介绍  网络通信协议  UDP通信  TCP通信 今日学习目标  能够辨别UDP和TCP协议特点  能够说出UDP协议下两个常用类名称  能够说出TCP协议下两个常用类名称...

stars永恒
43分钟前
1
0
二进制相关

二进制 众所周知计算机使用的是二进制,数字的二进制是如何表示的呢? 实际就是逢二进一。比如 2 用二进制就是 10。那么根据此可以推算出 5的二进制等于 10*10+1 即为 101。 在计算机中,负数以...

NotFound403
昨天
3
0
day22:

1、写一个getinterface.sh 脚本可以接受选项[i,I],完成下面任务: 1)使用格式:getinterface.sh [-i interface | -I ip] 2)当用户使用-i选项时,显示指定网卡的IP地址;当用户使用-I选项...

芬野de博客
昨天
2
0
Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现

自Spring Cloud Alibaba发布第一个Release以来,就备受国内开发者的高度关注。虽然Spring Cloud Alibaba还没能纳入Spring Cloud的主版本管理中,但是凭借阿里中间件团队的背景,还是得到不少...

程序猿DD
昨天
4
0
Java并发编程:深入剖析ThreadLocal

ThreadLocal 的理解 ThreadLocal,很多地方叫线程本地变量,或线程本地存储。ThreadLocal为变量在每个线程中都创建了一个副本,每个线程可以访问自己内部的副本变量。===》解决的问题是线程间...

细节探索者
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部