it-swarm.com.de

Django und Restful APIs

Ich hatte Schwierigkeiten mit der Auswahl einer Methodik für die Erstellung einer RESTful-API mit Django. Keiner der Ansätze, die ich ausprobiert habe, scheint die "silberne" Kugel zu sein. WAPI from http://fi.am ist wahrscheinlich am nächsten an dem, was ich erreichen möchte, jedoch bin ich nicht sicher, ob es in einer echten RESTful-API akzeptabel ist, Parameter zu haben, die Ressourcenkennungen in der Querzeichenfolge sind statt in einem "sauberen" URL-Format. Vorschläge zur Änderung der WAPIs RestBinding.PATTERN, um die URLs zu "bereinigen"? Eine andere Option, die ich erforscht habe, ist das Django-Rest-Interface. Dieses Framework scheint jedoch gegen eines der wichtigsten Elemente zu verstoßen, die ich brauche, und zwar die vollständige Ressourcen-URL für Verweise auf andere Ressourcen (siehe http://jacobian.org/writing/rest-worst-practices/ Unsachgemäße Verwendung von Links). Die letzte Option ist die Verwendung von Django-Multiresponse und im Wesentlichen der lange Weg.

Bitte geben Sie mir Ihren besten Rat, insbesondere Personen, die sich mit dieser Entscheidung befasst haben. 

58
gsiegman

Ich glaube, dass der kürzlich veröffentlichte Django-Kolben jetzt die beste Lösung ist, um eine REST - Schnittstelle in Django zu erstellen. Django-Kolben

Anmerkung: Django-Kolben scheint nicht mehr gepflegt zu werden (siehe Kommentare unten) 

18
gsiegman

Django-Rest-Framework ist für Django neben Tastypie und Kolben ein vielversprechendes, das erwähnenswert ist. Ich habe bereits eines meiner Projekte problemlos darauf migriert.

Django REST Framework ist ein leichtgewichtiges REST Framework für Django, das zielt darauf ab, den Aufbau gut vernetzter, sich selbst beschreibender RESTful Web-APIs.

Schnelles Beispiel:

from Django.conf.urls.defaults import patterns, url
from djangorestframework.resources import ModelResource
from djangorestframework.views import ListOrCreateModelView, InstanceModelView
from myapp.models import MyModel

class MyResource(ModelResource):
    model = MyModel

urlpatterns = patterns('',
    url(r'^$', ListOrCreateModelView.as_view(resource=MyResource)),
    url(r'^(?P<pk>[^/]+)/$', InstanceModelView.as_view(resource=MyResource)),
)

Nehmen Sie das Beispiel von der offiziellen Website. Alle oben genannten Codes enthalten API, selbsterklärende Dokumentation (wie Seifen-Webservice) und sogar Sandboxing zum Testen. Sehr angenehm.

Links: http://Django-rest-framework.org/

41
Sun Liwen

Django-tastypie ist ein guter Weg, es zu tun, ihr Slogan: "Köstliche APIs für Django-Apps seit 2010 erstellen" ist ziemlich tröstlich;)

9
guerrerocarlos

Sie können sich das Beispiel Django-dynamicresponse anschauen, ein einfaches Framework zum Hinzufügen von REST - API mit JSON zu Ihren Django-Anwendungen.

Es müssen nur minimale Änderungen vorgenommen werden, um vorhandene Django-Apps mit API-Unterstützung zu unterstützen, und die Integration von APIs in neue Projekte ist von Anfang an unkompliziert.

Grundsätzlich beinhaltet es Middleware-Unterstützung für das Parsen von JSON in request.POST, zusätzlich zur Serialisierung des zurückgegebenen Kontexts in JSON oder für das bedingte Rendern einer Vorlage/eines Umleitens basierend auf dem Anforderungstyp.

Dieser Ansatz unterscheidet sich von anderen Frameworks (z. B. Django-Kolben) darin, dass Sie keine separaten Handler für API-Anforderungen erstellen müssen. Sie können auch Ihre vorhandene Ansichtslogik wiederverwenden und die Formularprüfung usw. wie normale Ansichten verwenden.

5
chrismi

Ich weiß nicht, ob dieses Projekt für Sie nützlich sein kann, aber das Senden eines Links kann kaum schaden. Schauen Sie sich Django-Apibuilder an, verfügbar unter http://opensource.washingtontimes.com/projects/Django-apibuilder/ . Vielleicht kann es nützlich sein?

/ Jesper

4

Schauen Sie sich diese RestifyDjango an.

Etwas verwandt sind Django XML-RPC und JSON-RPC .

0
Soviut

https://github.com/RueLaLa/savory-pie

Savory Pie ist ein REST Framework, das Django unterstützt.

0
Mike Milkin

Ich würde vorschlagen, dass Sie sich das Django Rest Framework (DRF) ansehen, damit herumspielen und sehen, ob es Ihren Anforderungen entspricht. Der Grund, warum ich DRF empfehle, liegt darin, dass die API-Ansichten durch Verwendung von GenericAPIView-Klassen, Mixin-Klassen und Gemischen in generischen Ansichten wirklich einfach werden. Sie können auf einfache Weise bewährte Entwurfsmuster verwenden, um Ihre API-Endpunkte zu erstellen und die Codebasis übersichtlich und präzise zu halten. Sie auch DRY, wenn Sie Ihren Code schreiben, was immer großartig ist. Ihre API-Ansichten sind buchstäblich 2-3 Zeilen lang.

Sie können dieses Tutorial http://programmathics.com/programming/python/Django-rest-framework-setup/ ausprobieren, das von der Einrichtung Ihrer Umgebung bis hin zu verschiedenen Möglichkeiten zur Erstellung Ihrer REST-fähigen API mit Django beginnt rahmen rahmen.

Haftungsausschluss: Ich bin der Schöpfer dieser Website.

0
SeekingAlpha