2012-08-05 13 views
6

Die Release Notes für django rest framework behaupten, dass die JSONP-Unterstützung in 0.3.0 hinzugefügt wurde. Ich habe auch eine JSONPRenderer-Klasse im Framework gefunden. Ich kann jedoch keine Dokumentation darüber finden, wie man das Ding benutzt ... Ich bin ziemlich neu bei JSonp.Verwendung von jsonp mit dem django-rest-framework

Hat jemand jemals erfolgreich Jsonp mit dem Django Rest Framework verwendet?

Antwort

5

Während ich dies schrieb, fand ich die Antwort (oder zumindest AN Antwort). Es scheint, dass der jsonp-Renderer standardmäßig für eine ModelResource verfügbar ist. Sie müssen lediglich "? Format = json-p" zur anfragenden URL hinzufügen.

+2

[Hier ist] (http://django-rest-framework.org/api-guide/renderers.html#jsonprenderer) die offizielle Dokumentation. – chaselee

+2

Nur ein paar Minuten zu jedem es googeln sparen: REST_FRAMEWORK = { 'DEFAULT_RENDERER_CLASSES': ( 'rest_framework.renderers.JSONRenderer', 'rest_framework.renderers.JSONPRenderer', 'rest_framework.renderers.BrowsableAPIRenderer', ), – vincent

+1

update: Früher war es ein Teil der Django-Rest-Framework-Distribution, aber es ist jetzt als Third-Party-Paket verfügbar http://jpadilla.github.io/django-rest-framework-jsonp/ –

0
from rest_framework.views import APIView 
from rest_framework_jsonp.renderers import JSONPRenderer, JSONRenderer 
from rest_framework.response import Response 

class YourClass(APIView): 
    renderer_classes = (JSONPRenderer, JSONRenderer) 

    def get(self, request, *args, **kwargs): 
     your_result = {{ your serialized result }} 
     return Response({'status': 'success', 'result': your_result}) 
2

Nur für den Fall, dass jemand nach jsonp sucht.

First (docs):

pip install djangorestframework-jsonp

Und dann REST Framework-Einstellungen ändern.

REST_FRAMEWORK = { 
    'DEFAULT_RENDERER_CLASSES': (
    'rest_framework_jsonp.renderers.JSONPRenderer', 
), 
} 

Schließlich stellen Sie sicher, dass Ihre URL enthält ?format=jsonp und nicht ?format=json-p.