Slides from php|works & PyWorks

Here are the slides for my talk “You Look Like You Could Use Some REST!” given on the general track at php|works and PyWorks in Atlanta a few weeks ago. In my talk, I mentioned that I would be adding my notes from the talk to this blog post, but I’ve decided against doing that for the time being. However, I’ve been thinking about REST a lot lately, and I’ll use this blog in the near future to write some of these thoughts. I’m also working on a now overdue article on REST for php|architect, and I’m sure my editor would not like it if she knew I was blogging about REST instead of writing my article about it. I’ll announce that article here when it’s published so you can go snag a copy.

I will say this one thing, though: In my talk, I mentioned that the REST community doesn’t care much for content negotiation. I simplified the issue, though, because there are really two camps. On the one side, you have those who think content negotiation is the only way to go, and on the other side, you have those who prefer file extensions or query string parameters that denote the content type to return. There is actually an interesting discussion about a proposal to use a type attribute in the a tag in HTML 5 to tell the client what content-type to request for the resource identified by the URL in the href. It might look something like this:

<a type="text/html" href="/user/ramsey">Ben Ramsey</a>,
<a type="application/pdf" href="/user/ramsey">Ben Ramsey (PDF)</a>

And with that, I leave you with the slides for my talk…

Representational State Transfer, or REST, has become the hip, new buzzword of Web 2.0. But what really makes an application RESTful? Is it pretty URLs? Or the use of XML over HTTP? Is it any web service that doesn’t use SOAP? In all of the hype, the definition of REST has become clouded and diluted.

It’s time to take a fresh look at REST. In this talk, Ben Ramsey reintroduces REST and its architectural style. He shows that REST is not only an architecture for web services but that it describes an architecture for the Web. Ramsey will demonstrate how statelessness, a resource-oriented architecture, atomicity of requests, and other traits of REST make the most of the Web’s architecture to provide scalable and simpler web services turning the Web into a platform by which rich clients can access and manipulate data.

View and download slides.