REST Client Constructor
This package provides a simple mechanism for constructing clients for REST-based services. Every client extends the RESTClient class, and every method which hits the REST service is decorated with the @restmethod() decorator. The @restmethod() decorator causes the decorated method to be passed an additional argument (after the “self” argument): an HTTPRequest object. The method may then manipulate request headers and the body of the request, then use the send() method on the HTTPRequest object to issue the request. The return value of the send() method will be an httplib2.Response object, which can then be interpreted. If the response is a redirection, httplib2 will follow the redirection; if the response is an error (status code 400 or greater), an exception is raised.
The rest package also includes the rest.jsclient module, which provides a JSONClient class geared toward those REST services which use JSON-encoded data. An additional _attach_obj() method is provided for JSONClient, and responses have any available valid JSON decoded and placed in the obj attribute of the response. (The body attribute of the response is additionally set to the content of the response, whether or not it is valid JSON.)