This article by Joe Gregorio is simply a wonderful description of how to build a RESTful application. What the world needs is more articles like this.
Minor point - "Another check is to ensure that all of the methods that aren't GETs are non-idempotent." This is incorrect, as PUT and DELETE are always idempotent (repeating the request results in the same end state). The non-safe methods (the ones that modify data) should be done with something other than GET.