Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何仅使用状态代码检查rails中API的成功响应?_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 如何仅使用状态代码检查rails中API的成功响应?

Ruby on rails 如何仅使用状态代码检查rails中API的成功响应?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在使用RubyonRails中的gem使用API。gem为我调用API,并将状态代码作为整数(例如200201 e.t.c.)和来自API的数据响应返回 def get_cars status_code, data = MyGem::Cars.get_cars if status_code in SUCCESSFUL_RESPONSE_CODES # Perform data manipulation else raise "There was an error

我正在使用RubyonRails中的gem使用API。gem为我调用API,并将状态代码作为整数(例如200201 e.t.c.)和来自API的数据响应返回

def get_cars
  status_code, data = MyGem::Cars.get_cars
  if status_code in SUCCESSFUL_RESPONSE_CODES
    # Perform data manipulation
  else
    raise "There was an error processing the request. Status code #{status_code}"
  end
end
现在我已经手动初始化了
SUCCESSFUL\u RESPONSE\u code
,作为一个包含我找到的成功代码整数的列表


是否在Ruby/RoR中定义了此列表以避免手动定义它?

我希望任何广泛支持的gem都使用标准HTTP响应代码来确定HTTP响应是否成功。例如:

require 'open-uri' # Rails loads this by default.
res = open('http://example.com')
res.status
=> ["200","OK"]
status.include?'OK'
=>true
status.include?'200'
=> true
只要您信任请求处理标准HTTP响应代码的gem代码,您就应该可以了。下面是使用httpartygem的另一个示例

require 'HTTParty'
res = HTTParty.get('https://example.com')
res.success?
=> true

你用什么代码来构造HTTP请求?这都是由gem内部完成的。我得到的只是作为整数和数据的状态代码。你能告诉我们是哪个gem吗?@ElChapo检查HTTP状态代码似乎有点低级,因为gem应该为你处理连接细节。谢谢大家的帮助。这是一个定制的gem,因此我将按照您的建议,将状态处理逻辑移动到gem,正如lacostenycoder在其回答中所建议的那样