For better performance, and less variability in user response times, you can take existing external API calls and cache them in a number of ways. Read about it at the CRAZ8 blog
Following on from my previous post about how to generate good etag values for your resources, I put together a gem that helps you include the template code that is part of the HTML representation of your resource. Read about the etag_for gem
How do you create a good ETAG in Rails that represents the resource in a way that allows for changes to break the cache. Read the post at the CRAZ8 Blog