While working on the geometry team at ESRI, there was no requirement for me to understand communication protocols. So in meetings when people mentioned SOAP and REST, I trusted that someone else on the geometry team would explain to me how it impacted my work.

Later while working on an a turn based iPhone game, I had no idea how to perform a communication pattern between players. I looked into it and decided long-polling would be easier to learn than websockets, so I blindly dove into using HTTP. Even though I eventually wrote a working client and server communication system using HTTP, I never was sure if I was being RESTful.

In preparing our understanding of client-server communication, Hack Reactor linked us to a nice summary of HTTP and REST for the beginning of our chatter-box sprint:

A Beginner's Guide to HTTP and REST

Reading the above blog post I see that while my use of REST in my old iPhone game did work within the restrictions of how GET, POST, PUT and DELETE affect the server side resources, I did make the mistake of using verbs in my URLs instead of nouns. A nice summary of the misuse of verbs in URLs is made in the below blog post by Chander Dhall:

5 Best Practices for Better RESTful API Development

There is a part of my brain that thinks it is bizarro to dissallow the use of verbs. It seems like getResource, setResource and deleteResource would be fine enough names in a world where we can create a limitless number of URLs and where we can restrict actions in the server side request handler. But that instinct is coming from someone who is new to all this stuff. I trust that the people who designed REST have far greater insight than me. From now on I will think about a URL as a resource location upon which I can perform the RESTful actions.

Verbs Bad, shirt by Pete Ashton