mirror of
https://github.com/encode/django-rest-framework.git
synced 2024-11-22 09:36:49 +03:00
DjangoCon US 2012 Sprints
parent
6dac171740
commit
8153b0db4d
69
DjangoCon-US-2012-Sprints.md
Normal file
69
DjangoCon-US-2012-Sprints.md
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
# What's the deal?
|
||||||
|
|
||||||
|
We're pushing towards REST framework 2.
|
||||||
|
|
||||||
|
It's a major redesign that fixes up a bunch of issues with REST framework as it currently stands,
|
||||||
|
and it's going to be a totally kick-ass, super well-documented, beautifully designed and all round awesome release.
|
||||||
|
|
||||||
|
## Great, where are we at right now?
|
||||||
|
|
||||||
|
Doing pretty nicely, thanks.
|
||||||
|
|
||||||
|
Check out the [restframework2 branch][branch] and the [redesigned docs][docs], in particular tutorial parts 1-3 and part 6.
|
||||||
|
|
||||||
|
## Stuff that's missing right now.
|
||||||
|
|
||||||
|
Some of the gaps that need filling in:
|
||||||
|
|
||||||
|
* PUT/POST/DELETE aren't working in the Browseable API just yet.
|
||||||
|
* Bits of work to be done on serializers - 'readonly' fields, and hyperlinked relations.
|
||||||
|
* Resources & routers (See part 6 of the tutorial.)
|
||||||
|
* Some bits of tweaking needed around format suffixes '.json'
|
||||||
|
* Various sections missing from documentation.
|
||||||
|
* Documentation bootstrap styling needs a bit of work. (Eg broken on mobile browsers right now)
|
||||||
|
* Browseable API could do with a twitter Bootstrap redesign.
|
||||||
|
* Needs a better and more comprehensive test suite.
|
||||||
|
* Really could do with BasicTokenAuthentication (OAuth needed too, but that's secondary.)
|
||||||
|
|
||||||
|
## Okay, where should I start then?
|
||||||
|
|
||||||
|
### TokenBasicAuthentication.
|
||||||
|
|
||||||
|
Take a look through the authentication docs. Take a look at the existing authentication classes.
|
||||||
|
Implement TokenBasicAuthentication as a subclass of BasicAuthentication.
|
||||||
|
It'll need implementing as an optional app, so that tokens are not always installed by default - user will add `djangorestframework.basicauthtoken` to `INSTALLED_APPS` if they want the token models in their database.
|
||||||
|
|
||||||
|
### Bootstrap redesign of the browseable API
|
||||||
|
|
||||||
|
Give it some bootstrap hotness.
|
||||||
|
|
||||||
|
### Documentation about overriding default browseable API style.
|
||||||
|
|
||||||
|
We need some docs about how you can override the default template, what template tags can be overwritten etc...
|
||||||
|
|
||||||
|
### Document throttles and permissions.
|
||||||
|
|
||||||
|
There's now some really good documentation for authentication that you should use as the template for documenting throttles and permissions.
|
||||||
|
|
||||||
|
### Document renderers and parsers.
|
||||||
|
|
||||||
|
Again use the authentication documentation as a rough template, but there's a bit more work here than for throttles/permissions.
|
||||||
|
|
||||||
|
### Work on the documentation bootstrap style.
|
||||||
|
|
||||||
|
* Fix up the styling so it works on mobile sized screens.
|
||||||
|
* The header bar does slightly odd things when it collapses - try to tidy that up.
|
||||||
|
|
||||||
|
### Implement Resources & Routers.
|
||||||
|
|
||||||
|
See part 6 of the tutorial for an overview of how that should look. (And the mixins section of part 3 for a better idea of how they get composed)
|
||||||
|
Resources are view-like classes that implement everything except the actual `.get()`, `.post()` etc... method handlers. Routers create subclasses of the resource, binding the method handlers to the actual actions
|
||||||
|
|
||||||
|
I think the base ModelResource will probably need to be composed of `APIView` Django's `MultipleObjectMixin` *and* `SingleObjectMixin`, plus *all* the REST framework mixins.
|
||||||
|
|
||||||
|
### Test out object-level permissions.
|
||||||
|
|
||||||
|
REST framework should now support object level permissions. (See `SingleObjectBaseView.get_object()` in `generics.py`.) Using a view with `DjangoModelPermissions`, install `django-guardian` and see if you can get everything playing together nicely. If so, the Authentication documentation should be updated to reflect that.
|
||||||
|
|
||||||
|
[branch]: https://github.com/tomchristie/django-rest-framework/tree/restframework2
|
||||||
|
[docs]: http://tomchristie.github.com/django-rest-framework
|
Loading…
Reference in New Issue
Block a user