Seriously REST isn't a mystery. I think the problem is few understand what it is. Here is my 30-second version:
1. Identification of resources and manipulation through representations. This means a network resource should have a URL that is the same no matter what you are doing to it - getting changing, removing, modifying or any custom manipulation. For the Web, use HTTP verbs and request body data to define the actions.
2. Self-descriptive error messages. Don't return 200 OK for everything. Use status codes and verbose response bodies to describe what happened.
3. Hypermedia as the engine of application state. Expose ALL functionality in HTML using hyperlinks and forms.