如何 运行 关于从外部 API 调用 ruby 返回的 404 的 "if" 语句
How to run a "if" statement on returned 404s from external API call ruby
我正在测试 Fullcontact API 以检索有关特定人员的信息。如果我用 API 查找的人在他们的数据库中不存在,则会 return 出现 404 Not found 错误。我试图通过检索其他用户名来解决这个问题,但它不起作用。这是代码:
person = FullContact.person(email: 'wilson@wilsontest.com')
if person.to_i > 400
person = FullContact.person(email: 'wilsonp@gmail.com')
else
person = FullContact.person(email: 'wilson@wilsontest.com')
end
p person
当找不到电子邮件时,这仍然显示 404 Not found。
如果您使用 fullcontact-api-ruby
gem,如果此人不存在,FullContact.person
调用应该会引发 FullContact::NotFound
错误。您需要修复该错误才能尝试其他操作:
def get_person
emails ||= ['wilson@wilsontest.com', 'wilsonp@gmail.com']
person = FullContact.person(email: emails.shift)
rescue FullContact::NotFound
unless emails.empty?
retry
else
# bottom line
end
end
请注意 Ruby 中的异常非常慢,并且您还会遇到外部 API,因此请注意此处的响应时间。
我正在测试 Fullcontact API 以检索有关特定人员的信息。如果我用 API 查找的人在他们的数据库中不存在,则会 return 出现 404 Not found 错误。我试图通过检索其他用户名来解决这个问题,但它不起作用。这是代码:
person = FullContact.person(email: 'wilson@wilsontest.com')
if person.to_i > 400
person = FullContact.person(email: 'wilsonp@gmail.com')
else
person = FullContact.person(email: 'wilson@wilsontest.com')
end
p person
当找不到电子邮件时,这仍然显示 404 Not found。
如果您使用 fullcontact-api-ruby
gem,如果此人不存在,FullContact.person
调用应该会引发 FullContact::NotFound
错误。您需要修复该错误才能尝试其他操作:
def get_person
emails ||= ['wilson@wilsontest.com', 'wilsonp@gmail.com']
person = FullContact.person(email: emails.shift)
rescue FullContact::NotFound
unless emails.empty?
retry
else
# bottom line
end
end
请注意 Ruby 中的异常非常慢,并且您还会遇到外部 API,因此请注意此处的响应时间。