[XML-SIG] REST made more concrete still

Paul Prescod paul@prescod.net
Tue, 19 Feb 2002 16:57:00 -0800

I had a much better idea of how to do static service declarations (as
per IDL or WSDL) for REST web services:


It reflects the underlying Web Architecture much more clearly than my
old proposal did. It is consequently simpler. 

It has first-class concepts of "resource", "representation", "method",
"input" and "output". Methods are HTTP methods like PUT, GET, DELETE,
YOURMETHOD. Inputs are like HTTP method inputs: headers, query params
and body (the URI is implied by the resource!). Outputs are like HTTP
outputs: status code, headers and body. Resources know what
representations they support and you can navigate from resource to
resource through hyperlinks without worrying about the XML or HTML
syntax of the representation (unless you want to). Following a hyperlink
is a type-safe operation.

That's about all the concepts in it.

A rough proposal for an API (Java-ish syntax to prove it isn't biased
towards dynamic languages) is provided. Everything is statically type
checked just as with IDL or WSDL. Of course in Python everything would
be done at runtime and thus save a build step.

When I implement it I think it will be a really cool tool. Until then, I
think it is a useful pedagogic tool for those working on REST Zen. If
*you* want to implement it before I get around to it, in whatever
language, please do. I'll work with you to clear up any fuzzy parts of
the spec.

 Paul Prescod