文档章节

ruby 编写api程序

moli
 moli
发布于 2015/06/07 20:51
字数 232
阅读 267
收藏 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

粉丝 111
博文 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 我为什么选择...

kajhsdjkah
2012/06/29
2.1K
0
无需图形界面环境下的浏览器项目一览表

本表几乎列出了所有无需图形界面环境下的浏览器开源项目,可用于自动化、测试或者其他用途。 软件名 介绍 支持语言 Awesomium 基于Chromium无图形界面浏览器引擎。 C++, .NET benv Benv是nod...

oschina
2016/07/27
11.4K
18
CommonJS

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

匿名
2010/09/28
24.8K
0
Ruby FFI

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

匿名
2008/11/03
1K
0
ESB 服务器--Zato

Zato 是一个用 Python 编写的开源 ESB 和应用服务器。按照设计,它用于构建后端应用程序(即仅是API)和在SOA 中整合系统。 Zato 的目标用户是使用 Python 或者 Ruby 和 PHP 等其它动态语言的...

匿名
2013/05/27
7.1K
1

没有更多内容

加载失败,请刷新页面

加载更多

阿里P8架构师深度概述分布式架构

简介 作为一名架构师,我们要专业,要能看懂代码,及时光着臂膀去机房,也能独挡一面!及时同事搞不定问题,或者撂挑子,你也能给老大一个坚定的眼神:不怕,有我在!还能在会议室上滔滔不绝...

java知识分子
9分钟前
0
0
zabbix利用自带的模板监控mysql数据库

zabbix利用自带的模板监控mysql数据库                                     作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 有些东...

linjin200
15分钟前
0
0
当刷新的Sandbox后,需要重新发布社区

当刷新的Sandbox后,需要重新发布社区 然后在登录页面设置中选择login/forgot password

在山的那边
16分钟前
0
0
Ubuntu 镜像文件下载

https://www.ubuntu.com/download/desktop

15834278076
19分钟前
0
0
解决php -v查看到版本于phpinfo()打印的版本不一致问题

一般造成这种原因可能是升级或多版本 用php -v 和phpinfo()查出来版本不一致,怎么解决呢 编辑/etc/profile文件在最后一行添加一个环境变量: export PATH="/usr/local/php/bin:$PATH" 最后保...

xiaogg
20分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部