Lab 5: Web Services with REST



Due Tuesday 3/6 at start of class.
20 points
.

For this lab, you will incorporate (at least) two REST-based web services into your photo-organizing web application. You may decide exactly what this means and what functionality you want to provide. I will grade each service on a 1-10 scale based on interestingness (does it add something of value to your app), complexity (how impressive is it as a programming task), and usability (how easy is it for someone to actually use your new feature). I'm much more interested in services that actually make your photo app more useful or interesting, or add a valuable new feature than I am in a "tacked-on" service that doesn't really seem helpful (such as searching Amazon for all books that share a tag with a picture - easy to do, but not very helpful).

You may choose any web services you like, as long as they have a REST interface. Here are a few ideas - please do not feel limited to these.
  1. Integrate with the Facebook API. Allow users to upload/download pictures to Facebook, link to the Facebook pages of friends tagged in a picture, get the Facebook tags associated with a picture, and so on.
  2. Integrate with Flickr. Allow users to upload/download pictures, add tags directly to Flickr, add to their favorites or to pools, and so on.
  3. Integrate with Yahoo!'s API. There's a wide variety of things you can do here, including search based on tags, access Yahoo! photos to upload/download/tag images, create albums, and so on.
  4. Integrate with Google Maps to add geographic data. If your pictures have GeoTags in them (for example, if they were taken with a GPS-enabled phone) you can automatically map them. If not, you could allow users to tag them by location.
  5. You could use Upcoming.org's REST service to display events related to the pictures you are displaying.
  6. Use the Technorati API to find blogs related to a set of photos, or blogs with similar tags, and so on.
This is not a comprehensive list - there are dozens of sites out there with REST APIs. Some of them, such as YouTube, del.icio.us, eBay, and Amazon, don't have an obvious connection to photos and photo sharing, but if you think of something that makes sense, go for it.

Many of these APIs also come with code that saves you the tedious work of constructing URLs by hand. You can use this code on two conditions:
  1. You give proper attribution in ALL cases.
  2. You recognize that just because someone has put some code on the Web, that does not mean that code is perfect. You may need to fix, debug, improve or extend this code to make it work.