Mr.c's Blog

学习做自己的api

  • 使用faraday_middleware插件,Faraday, 它是一个ruby的http客户端,用类似rack middleware的方式来定制各种http调用
  • 简单的说就是发送一个http请求给我们的web程序,然后调用相应的api,进行数据处理后,返回给我们结果

  • 在gemfile中加入faraday_middleware

  • 在config/initializers/下创建文件, init_faraday.rb, 文件内容如下:

UPLOAD_URL = "http://127.0.0.1:3000"
$conn = Faraday.new(:url => UPLOAD_URL) do |faraday|
  faraday.request  :url_encoded
  faraday.adapter  Faraday.default_adapter
end
  • 以上定义了,我们要请求的地址,发送请求的字符编码,适配器,默认为NetHttp
  • 在我们的控制器中就可以发送请求了
  def self.send_http_request(params)
      begin
        response = $conn.post "/api/dps/prosessor", params
        results = JSON.parse(response.body)
      rescue
        return results
      end
  end
  • 实际地址为:http://127.0.0.1:3000/api/dps/prosessor + params
  • 下一步只需要添加相应的控制器就可以了
  • 在文件夹app/controller/api/dps_controller.rb下
class Api::DpsController < ActionController::Base

  def prosessor
     p "---------------"
     p params
     p "---------------"
     render :json => {}
  end

end

对应的api routes配置如下:

  namespace :api do
    resources :dps do
      collection do
        post :prosessor
  end
    end
  end

blog comments powered by Disqus