У меня есть следующая функция для поиска фильма через Rotten Tomatoes API по его названию, которое случайно может быть написано не на базовом английском. Я использую гем HTTParty для обертывания API.
def self.search_by_title(title)
options = {query: {apikey: "secret", page_limit: "1" }}
response = self.get("http://api.rottentomatoes.com/api/public/v1.0/movies.json?q=#{CGI.escape(title)}", options)
movie = JSON.parse(response.body)
end
Итак, если я сделаю, скажем, следующий запрос (ищите фильм "Расёмон"):
http://api.rottentomatoes.com/api/public/v1.0/movies.json?q=#{CGI.escape(Rashômon)}&apikey=apikey
он возвращает пустой хеш
{"total"=>0, "movies"=>[], "links"=>{"self"=>"http://api.rottentomatoes.com/api/public/v1.0/movies.json?q=Rash%C3%83%C2%B4mon&page_limit=1&page=1"}
Если я вместо этого использую просто «Расёмон», ничего страшного. Но я получаю эти заголовки через сторонний API, и иногда он дает заголовки в таком формате.
Я знаю, что мне, вероятно, следует искать по другим идентификаторам (imdb_id, английское имя и т. Д., Но иногда я не могу предоставить эти переменные и использовать search_by_title в качестве резервной функции.
Есть ли способ обойти это?