Search code examples
javascriptrotten-tomatoes

Basic use of an API (The Rotten Tomatoes API)


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.


Solution

  • 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