Web APIs for Django. 🎸
Go to file
2011-08-15 14:59:24 +01:00
djangorestframework allow primary key to be non-numeric 2011-08-15 14:59:24 +01:00
docs Merge throttling and fix up a coupla things 2011-06-15 14:41:09 +01:00
examples pull in markos changes, minor tweaks to yaml stuff 2011-07-01 17:44:08 +01:00
.gitignore parsers.DEFAULT_PARSERS added to be consistent with renderers.DEFAULT_RENDERERS 2011-07-02 19:03:26 +02:00
.hgignore name and description 2011-05-23 17:07:31 +01:00
.hgtags Added tag 0.1 for changeset 6865c2156447 2011-02-21 23:54:33 +00:00
AUTHORS Edited AUTHORS via GitHub 2011-07-19 12:48:28 -07:00
LICENSE IANAL 2011-03-09 08:18:06 +00:00
MANIFEST.in proper manifest. setup groks version from __init__ 2011-06-02 12:17:21 +01:00
README.rst Tweak intro in README 2011-07-01 16:24:32 +01:00
requirements.txt pull in markos changes, minor tweaks to yaml stuff 2011-07-01 17:44:08 +01:00
setup.py pull in -dev as 0.2.0 2011-06-02 12:58:10 +01:00
tox.ini syncing dependencies. 2011-06-26 02:58:42 +02:00

Django REST framework
=====================

Django REST framework makes it easy to build well-connected, self-describing RESTful Web APIs.

Features:

* Creates awesome self-describing *web browse-able* APIs.
* Clean, modular design, using Django's class based views.
* Easily extended for custom content types, serialization formats and authentication policies. 
* Stable, well tested code-base.
* Active developer community.

Full documentation for the project is available at http://django-rest-framework.org

Issue tracking is on `GitHub <https://github.com/tomchristie/django-rest-framework/issues>`_.
General questions should be taken to the `discussion group <http://groups.google.com/group/django-rest-framework>`_.

Requirements:

* Python (2.5, 2.6, 2.7 supported)
* Django (1.2, 1.3 supported)


Installation Notes
==================

To clone the project from GitHub using git::

    git clone git@github.com:tomchristie/django-rest-framework.git


To clone the project from Bitbucket using mercurial::

    hg clone https://tomchristie@bitbucket.org/tomchristie/django-rest-framework


To install django-rest-framework in a virtualenv environment::

    cd django-rest-framework
    virtualenv --no-site-packages --distribute --python=python2.6 env
    source env/bin/activate
    pip install -r requirements.txt # django, coverage


To run the tests::

    export PYTHONPATH=.    # Ensure djangorestframework is on the PYTHONPATH
    python djangorestframework/runtests/runtests.py


To run the test coverage report::

    export PYTHONPATH=.    # Ensure djangorestframework is on the PYTHONPATH
    python djangorestframework/runtests/runcoverage.py


To run the examples::

    pip install -r examples/requirements.txt # pygments, httplib2, markdown
    cd examples
    export PYTHONPATH=..
    python manage.py syncdb
    python manage.py runserver


To build the documentation::

    pip install -r docs/requirements.txt   # sphinx
    sphinx-build -c docs -b html -d docs/build docs html


To run the tests against the full set of supported configurations::

    deactivate  # Ensure we are not currently running in a virtualenv
    tox


To create the sdist packages::

    python setup.py sdist --formats=gztar,zip



Release Notes
=============

0.2.3

* Fix some throttling bugs.
* ``X-Throttle`` header on throttling.
* Support for nesting resources on related models.

0.2.2

* Throttling support complete.

0.2.1

* Couple of simple bugfixes over 0.2.0
  
0.2.0

* Big refactoring changes since 0.1.0, ask on the discussion group if anything isn't clear.
  The public API has been massively cleaned up.  Expect it to be fairly stable from here on in.

* ``Resource`` becomes decoupled into ``View`` and ``Resource``, your views should now inherit from ``View``, not ``Resource``.

* The handler functions on views ``.get() .put() .post()`` etc, no longer have the ``content`` and ``auth`` args.
  Use ``self.CONTENT`` inside a view to access the deserialized, validated content.
  Use ``self.user`` inside a view to access the authenticated user.

* ``allowed_methods`` and ``anon_allowed_methods`` are now defunct.  if a method is defined, it's available.
  The ``permissions`` attribute on a ``View`` is now used to provide generic permissions checking.
  Use permission classes such as ``FullAnonAccess``, ``IsAuthenticated`` or ``IsUserOrIsAnonReadOnly`` to set the permissions.

* The ``authenticators`` class becomes ``authentication``.  Class names change to ``Authentication``.

* The ``emitters`` class becomes ``renderers``.  Class names change to ``Renderers``.

* ``ResponseException`` becomes ``ErrorResponse``.

* The mixin classes have been nicely refactored, the basic mixins are now ``RequestMixin``, ``ResponseMixin``, ``AuthMixin``, and ``ResourceMixin``
  You can reuse these mixin classes individually without using the ``View`` class.

0.1.1

* Final build before pulling in all the refactoring changes for 0.2, in case anyone needs to hang on to 0.1.

0.1.0

* Initial release.