a helper library to make writing REST clients in python extremely simple.


if you have setuptools installed, just do "easy_install restclient"


restclient is very simple so the main documentation is in docstrings in the code itself. this page just serves as a quick starter.

from restclient import GET, POST, PUT, DELETE
r = GET("") # makes a GET request to the url. returns a string 
POST("") # makes a POST request
PUT("") # makes a PUT request
DELETE("") # makes a DELETE request
POST("",params={'foo' : 'bar'}) # passes params along
POST("",headers={'foo' : 'bar'}) # sends additional HTTP headers with the request
POST("",accept=['application/xml','text/plain']) # specify HTTP Accept: headers

restclient also handles multipart file uploads nicely:

f = open("foo.txt").read()
POST("",files={'file1' : {'file' : f, 'filename' : 'foo.txt'}})

by default, POST(), PUT(), and DELETE() make their requests asynchronously. IE, they spawn a new thread to do the request and return immediately. GET() is synchronous. You can change this behavior with the 'async' parameter:

POST("",async=False) # will wait for the request to complete before returning

doing an asynchronous GET would be silly and pointless so I won't give an example of that but I'm sure you could figure it out.


grab the egg from the cheeseshop.


written by Anders Pearson at the Columbia Center For New Media Teaching And Learning.