dRest is a configurable HTTP/REST client library for Python. It's goal is to make the creation of API clients dead simple, without lacking features.
Features include:
- Light-weight API Client Library, implementing REST by default
- Native support for the Django TastyPie API Framework
- Only one external dependency on httplib2
- Key pieces of the library are customizable by defined handlers
- Interface definitions ensure handlers are properly implemented
- Tested against Python versions 2.6, 2.7, 3.2, 3.3
- 100% test coverage via Nose
- RTFD: http://drest.rtfd.org/
- CODE: http://github.com/datafolklabs/drest/
- PYPI: http://pypi.python.org/pypi/drest/
- T-CI: http://travis-ci.org/datafolklabs/drest/
importdrest# Create a generic client api objectapi=drest.API('http://localhost:8000/api/v1/')
# Make calls openly via any HTTP Method, and any path# GET http://localhost:8000/api/v1/users/1/response=api.make_request('GET', '/users/1/')
# Or attach a resourceapi.add_resource('users')
# Get available resourcesapi.resources>>> ['users', 'projects', 'etc']
# Get all objects of a resource# GET http://localhost:8000/api/v1/users/response=api.users.get()
# Get a single resource with primary key '1'# GET http://localhost:8000/api/v1/users/1/response=api.users.get(1)
# Create a resource data dictionaryuser_data=dict(
username='john.doe',
password='oober-secure-password',
first_name='John',
last_name='Doe',
)
# POST http://localhost:8000/api/v1/users/response=api.users.post(user_data)
# Update a resource with primary key '1'response=api.users.get(1)
updated_data=response.data.copy()
updated_data['first_name'] ='John'updated_data['last_name'] ='Doe'# PUT http://localhost:8000/api/v1/users/1/response=api.users.put(1, updated_data)
# Patch a resource with primary key '1'# PATCH http://localhost:8000/api/v1/users/1/response=api.users.patch(1, dict(first_name='Johnny'))
# Delete a resource with primary key '1'# DELETE http://localhost:8000/api/v1/users/1/response=api.users.delete(1)
# Get the status of the requestresponse.status# Or the data returned by the requestresponse.data# Or the headers returned by the requestresponse.headersThe dRest library is Open Source and is distributed under the BSD License (three clause). Please see the LICENSE file included with this software.
