2

I'm trying to achieve this:

Use the Rotten Tomatoes API to return a list of movie's by querying a list of movie IDs.

Now, I've not used an API before, so I'm finding my around the concepts. I've chosen to go with Javascript to interact with the data, using this example as the basis of my testing:

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 + '" />');
 });
}

That is using a search as the way to return a list of movies, but I already have a pre-defined list of movies I'd like to return.

The API uses this URL for returning a specific movie using an ID

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

My question is, how to create a function that will use those URL parameters to return, firstly, a movie with a specific ID, then go further to return a list of movies from a given set of IDs.

I think my question is more about the necessary JS to use with that URL, rather than too specific to the Rotten Tomatoes API itself.

MrLore
  • 3,759
  • 2
  • 28
  • 36
Dave
  • 686
  • 2
  • 13
  • 31
  • Thanks to @mfreitas comments, who gave some good insight into the RT API, I've re-searched and it's looking like the The Movie Database API is a better option: http://docs.themoviedb.apiary.io/ – Dave Nov 24 '12 at 10:30

1 Answers1

1

From what i've learned from their forums, their API does not currently support what you're looking for. They have to implement that in order for you to accomplish such a task. Something like passing an array of movie ID's:

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

You could obtain each movie you'd want by querying they're API once for every movie, and storing that info in a object for instance, but since public API's implement some sort of call limit, you'd reach that limit in no time ( depending on the type of app you're developing obviously )

A user on their forums actually asked for such a feature, you can see it here

mfreitas
  • 2,395
  • 3
  • 29
  • 42
  • Hey thanks mfreitas that's really helpful. Let's say I did want to query the API once for every movie, my app would query against 500 movies (fixed, this would not change) and then present this data on a webpage, that's it. I wonder if this would reach the API limits? – Dave Nov 23 '12 at 23:12
  • I think their limit is at 10,000 calls, which is not much if you're doing 500 calls in one go. It all comes back to which type of app you're building, if it's a public one, you're users will consume 10,000 calls in no time. You have two ways of controlling this, you either do the call yourself, lets say once a day, and save the results in a database and serve that to your users, or you'll have to maintain more than one API Key so you can get a bigger limit, but beware the service provider might not like that.. – mfreitas Nov 23 '12 at 23:31
  • Interesting, thanks. I'm curious as to how to do the call to download the data, then use this in a database. I could do this just once for the 500 movies, store the results in a database, and use this as data. Don't suppose you have any hints as to how to achieve this? Thanks a lot – Dave Nov 24 '12 at 00:01