Awesome
REST Framework JSONP
JSONP support for Django REST Framework
Full documentation for the project is available at http://jpadilla.github.io/django-rest-framework-jsonp.
Overview
JSONP support extracted as a third party package directly from the official Django REST Framework implementation.
Warning: If you require cross-domain AJAX requests, you should almost certainly be using the more modern approach of CORS as an alternative to JSONP
. See the CORS documentation for more details.
The jsonp
approach is essentially a browser hack, and is only appropriate for globally readable API endpoints, where GET
requests are unauthenticated and do not require any user permissions.
Requirements
- Python (2.7, 3.3, 3.4)
- Django (1.6, 1.7, 1.8)
- Django REST Framework (2.4, 3.0, 3.1, 3.2)
Installation
Install using pip
...
$ pip install djangorestframework-jsonp
Example
REST_FRAMEWORK = {
'DEFAULT_RENDERER_CLASSES': (
'rest_framework_jsonp.renderers.JSONPRenderer',
),
}
You can also set the renderer used for an individual view, or viewset, using the APIView class based views.
from rest_framework.response import Response
from rest_framework.views import APIView
from rest_framework_jsonp.renderers import JSONPRenderer
class ExampleView(APIView):
"""
A view that returns the count of active users in JSONP
"""
renderer_classes = (JSONPRenderer,)
def post(self, request, format=None):
user_count = User.objects.filter(active=True).count()
content = {'user_count': user_count}
return Response(content)
Documentation & Support
Full documentation for the project is available at http://jpadilla.github.io/django-rest-framework-jsonp.
You may also want to follow the author on Twitter.