paul nisset wrote:Hi Mark,
This is a twofer .
Do you consider REST more of a design concept ie. manipulating data through resource allocation -(get, put,delete, post)
or more of a specific technology?
I see the Web as a programming platform with REST as its constraints. So, I guess it is a little of both. It offers a set of base concepts like resources, link relations, and representational entities with links. With the interaction constraints that are implemented with HTTP/1.1 and tied to these core, primitive concepts - the Web is a framework/platform for building a variety of client-server applications.
Does that answer make sense or is it more confusing? I am happy to clarify my mental model for REST further if you'd like.
paul nisset wrote:Is that what your book focuses on, implementing an API for working with the constraints ?
Clarifying your model for REST would be interesting.
No problem. Together, this web page and this slide deck are an attempt to present my current mental model of REST and what it means to building modern client-server applications.
I also recently wrote an article for ProgrammableWeb.com that talks about how the WRML media type adds a simple, universal type identifier (a schema URI) to the REST "slot" that it already belongs (the Content-Type HTTP Header). It turns out that this idea enables a whole bunch of "frameworky bits" to be invented which makes our jobs as web application programmers much easier.
I am happy to help clarify anything that you find at these links.
paul nisset wrote:Thanks Mark.
The devil is in the details.
Totally. The implementation has eluded me for a long time but I think I am starting to wrangle the code-level design almost to the point where I want it.
If you are a Java guy, you might find it helpful to peek at the code itself. This class is still "very fresh", meaning a work-in-progress, but it is a central part of the Java rendition of WRML - so it will probably make sense to start here. Anyway, take a peek if you can spare the time and let me know what you think. There are some javadoc comments that will hopefully help make sense of this.