1

特定の人に関する情報を取得するために Fullcontact API をテストしています。私が彼らの API で探している人物がデータベースに存在しない場合、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 を表示します。

4

1 に答える 1

3

fullcontact-api-ruby宝石を使用している場合、その人が存在しない場合、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 にもアクセスしているため、ここでの応答時間に注意してください。

于 2015-09-28T10:17:07.800 に答える