2012-11-23 38 views
2

的我試圖做到這一點:基本使用的API(爛番茄API)

使用爛番茄API通過查詢電影ID列表返回影片的名單。

現在,我以前沒有使用過API,所以我找到了我的概念。我選擇用javascript去與數據進行交互,使用這些例子我測試的基礎:

var apikey = "myapikey"; 
var baseUrl = "http://api.rottentomatoes.com/api/public/v1.0"; 

// construct the uri with our apikey 
var moviesSearchUrl = baseUrl + '/movies.json?apikey=' + apikey; 
var query = "Gone with the Wind"; 

$(document).ready(function() { 

    // send off the query 
    $.ajax({ 
    url: moviesSearchUrl + '&q=' + encodeURI(query), 
    dataType: "jsonp", 
    success: searchCallback 
    }); 
}); 

// callback for when we get back the results 
function searchCallback(data) { 
$(document.body).append('Found ' + data.total + ' results for ' + query); 
var movies = data.movies; 
$.each(movies, function(index, movie) { 
    $(document.body).append('<h1>' + movie.title + '</h1>'); 
    $(document.body).append('<img src="' + movie.posters.thumbnail + '" />'); 
}); 
} 

即使用搜索作爲返回電影列表的方式,但我已經有預先定義的電影列表,我想要返回。

API使用這個網址使用的ID

api.rottentomatoes.com/api/public/v1.0/movies/[MOVIE_ID_HERE].json?apikey=ny97sdcpqetasj8a4v2na8va 

我的問題是返回一個特定的電影,如何創建將使用這些URL參數返回,首先,電影具有特定ID的功能,然後進一步從給定的一組ID中返回電影列表。

我想我的問題是關於必要的JS與該URL一起使用,而不是太專用於腐爛的番茄API本身。

+0

感謝@mfreitas的評論,他們對RT API有一些很好的見解,我已經重新搜索過,它看起來像The Movie Data基地API是一個更好的選擇:http://docs.themoviedb.apiary.io/ – Dave

回答

1

從我從他們的論壇中學到的知識,他們的API目前不支持你要找的東西。他們必須實現這一點,才能完成這樣的任務。喜歡的東西傳遞的電影ID的數組:

api.rottentomatoes.com/api/public/v1.0/movies/movies.json?q=["id1","id2","id3"] 

你可以得到你想要通過查詢,他們希望每部電影是API一次每部電影,並存儲爲實例對象的信息,但由於公共的API實施某種呼叫限制,你會立即達到這個限制(取決於你正在開發的應用程序的類型)

在他們的論壇上的用戶實際上要求這樣的功能,你可以看到它here

+0

嘿謝謝mfreitas,這真的很有幫助。比方說,我確實想要爲每個電影查詢一次API,我的應用程序將查詢500部電影(固定,這不會改變),然後將這些數據呈現在網頁上,就是這樣。我想知道這是否會達到API限制? – Dave

+0

我認爲他們的限制是10000個電話,如果你一次打500個電話,這個數字並不多。這一切都回到您正在構建的應用程序類型上,如果它是公共應用程序,您的用戶將很快消費10,000次呼叫。你有兩種方法來控制它,你可以自己動手,每天說一次,然後將結果保存到數據庫中並提供給用戶,否則你將不得不維護多個API密鑰,以便你可以得到一個更大的限制,但要小心服務提供商可能不會那樣.. – mfreitas

+0

有趣,謝謝。我很好奇如何調用下載數據,然後在數據庫中使用它。我可以爲500部電影只做一次,將結果存儲在數據庫中,並將其用作數據。不要以爲你有什麼提示如何做到這一點?非常感謝 – Dave