Skip to content

eirmag/drest

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

97 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NAME: drest

AUTHOR: BJ Dierkes <wdierkes@5dollarwhitebox.org>

DESCRIPTION:

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:

    * 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 all major versions of Python versions 2.6 through 3.2
    * 100% test coverage via Nose 
    
USAGE:

    import drest

    # Create a generic client api object
    api = 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 resource
    api.add_resource('users')
    
    # Get available resources
    api.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 dictionary
    user_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 = 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)
    
    # Delete a resource with primary key '1'
    # DELETE http://localhost:8000/api/v1/users/1/
    response = api.users.delete(1)
    
    
LICENSE:

The dRest library is Open Source and is distributed under the BSD License 
(three clause).  Please see the LICENSE file included with this software.  

About

Configurable HTTP/REST Client Library for Python

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 95.5%
  • Shell 4.5%