Lab 5: Web Services with REST
Due March 7 30 points.
To turn in: place a copy of your new-and-improved codebase in the
submit directory. Also include a README giving the URL of your app.
In this lab, you'll get some experience using Web Services to gather
additional information for our movie database. You'll be interacting with
Amazon's Web Services platform, which has the advantage of being both
easy to use and relatively well documented. You should use the REST
intreface, which means that you can use whatever language you want;
you'll just be constructing URLs and parsing XML.
- Register
here to get an Amazon developer ID.
- 10 points Working directly with strings and URLs is not very
pleasant. Build an object wrapper for the Amazon API that provides
an interface for the ItemSearch, ItemLookup, SimilaritySearch,
BrowseNodeLookup, ListSearch, and ListLookup operations. (I'm sure
there are plenty of examples of this on the Web - please write your
own.)
For example, if you had a Python class called AWS, you might have an
interface something like this:
class AWS :
def ItemSearch(SearchIndex, keywords=None, responseGroup=Large, title=None, ...)
or perhaps you might choose to put all the optional arguments in a
dictionary. You might also find it helpful to have a Movie class.
- 5 points Use Amazon to get images for all of the movies
in your database. Modify your front-end display to show the images
alongside the movie titles (If a movie is not in Amazon's DB, show a
deault image instead).
- 5 points Use Amazon to find other things that a user of
your database might like. For each movie, get a list of similar
items. Recommend movies that are found more than once. in other words,
if a user has Superman and Spider-Man in their movie database,
Amazon might say that both of these movies are similar to Batman,
and so your tool should display Batman as a possible recommendation.
- 10 points Use Amazon to 'do something else cool'. For
example, display reviews of movies in your database, or bring up
associated lists, or open a browser and web page that would allow the
user to buy the movie. Creativity is encouraged here! You'll be graded
on both execution and creativity.