3

我采用了一些内联有 5 或 6 个法拉第请求的代码,这是我第一次使用它。我正在抽象为一个模块。这是我第一次使用这个库,我目前有:

module CoreService
  def self.net_connection param_url
    conn = Faraday.new(:url => param_url ) do |c|
      c.use Faraday::Request::UrlEncoded  # encode request params as "www-form-urlencoded"
      c.use Faraday::Response::Logger     # log request & response to STDOUT
      c.use Faraday::Adapter::NetHttp     # perform requests with Net::HTTP
    end
    return conn
  end

  def self.success? arg
    if [200,302].include? arg.status
      return true
    else
      return false
    end
  end
end

并会使用:

conn=CoreService.net_connection SOME::URL
url_val = "/other/things"
response = conn.get url_val     

if CoreService.success? response
  puts "THAT WAS A SUCCESS"
else
  puts "THAT WAS NOT A SUCCESS"
end

但是,这感觉有点不雅。我会不会更好地写这个不同的,比如猴子修补响应?目前的法拉第响应项目支持成功吗?实例方法,但仅检查 200。

4

1 回答 1

1

根据VERSION = '1.0.0'有一种response.success?方法可以在 http 响应代码 200 到 299 上返回 true

见: https ://github.com/lostisland/faraday/blob/e2c56e90c9b12f69f84a536ae3416​​17672bd52b7/lib/faraday/options/env.rb#L57

于 2020-02-27T01:56:39.230 回答