使用api_auth gem时如何处理错误?

时间:2016-01-18 06:35:35

标签: ruby-on-rails ruby rest-client api-auth

目前我正在使用api_auth gem的项目。我通过签署请求来打击函数中的外部api。目前我的代码看起来像这样。

access_id = "someKey"
secret_key = "someRandomGeneratedKey"
request = RestClient::Request.new(url: 'serverUrl', method: get, headers:'headers')

@signed_request = ApiAuth.sign!(access_id, secret_key, request)
@signed_request.execute

我无法将任何错误处理代码应用于执行请求的最后一个语句。有什么建议?

1 个答案:

答案 0 :(得分:0)

您必须使用begin rescue block进行异常处理。

begin
    #TODO Exception occurring statement
rescue 
    #Exception handling code
end

因为你应该只拯救特定的例外,而不是全部。 因此,您的代码建议您使用rest_client& api-auth gem所以从文档中你可以得到这个gem所引发的异常列表。

示例 - 对于下面的rest_client,需要处理异常。 (可能这是你问题的解决方案,只需替换下面给出的最后一行)

begin 
    @signed_request.execute
rescue RestClient::ExceptionWithResponse, URI::InvalidURIError, RestClient::InternalServerError => err
    p err
end

api-auth gem也会产生很少的例外情况 ApiAuth::ApiAuthErrorApiAuth::UnknownHTTPRequest所以你需要拯救所有这些例外。

参考链接 -

http://www.rubydoc.info/gems/api-auth/1.4.0/

谢谢!