J’ai eu du mal à choisir une méthodologie pour créer une API RESTful avec Django. Aucune des approches que j’ai essayées ne semble être la balle “d’argent”. WAPI de http://fi.am est probablement le plus proche de ce que je voudrais accomplir, mais je ne suis pas sûr qu’il soit acceptable dans une véritable API RESTful d’avoir des parameters qui sont des identificateurs de ressources dans la chaîne de requête plutôt que dans un Format d’URL “propre”. Des suggestions pour modifier WAPIs RestBinding.PATTERN pour “nettoyer” les URL? Une autre option que j’ai explorée est Django-Rest-Interface. Cependant, ce cadre semble violer l’un des éléments les plus importants dont j’ai besoin, à savoir inclure l’URL complète de la ressource pour des références à d’autres ressources (voir http://jacobian.org/writing/rest-worst-practices/ Liens). La dernière option consiste à utiliser django-multiresponse et à le faire dans le long terme.
S’il vous plaît, offrez-moi vos meilleurs conseils, en particulier les personnes qui ont traité cette décision.
Pour Django, en plus de goûter et de piston, django-rest-framework est une solution prometteuse qui mérite d’être mentionnée. J’ai déjà migré l’un de mes projets dessus sans problème.
Le framework REST de Django est un framework REST léger pour Django, qui vise à faciliter la création d’API Web RESTful bien connectées et auto-descriptives.
Exemple rapide:
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[^/]+)/$', InstanceModelView.as_view(resource=MyResource)), )
Prenons l’exemple du site officiel, tous les codes ci-dessus fournissent des api, de la documentation auto expliquée (comme un service Web basé sur du soap) et même du sandboxing pour les tests. Très pratique.
Je crois que le django-piston récemment sorti est maintenant la meilleure solution pour créer une interface REST correcte dans Django. django-piston
Note : le django-piston ne semble plus être maintenu (voir les commentaires ci-dessous)
django-tastypie est un bon moyen de le faire, leur slogan: “Créer de délicieuses API pour les applications Django depuis 2010” est assez réconfortant;)
Vous pouvez consulter django-dynamicresponse , une infrastructure légère permettant d’append l’API REST avec JSON à vos applications Django.
Cela nécessite des modifications minimales pour append la prise en charge de l’API aux applications Django existantes et simplifie l’intégration de l’API dès le début dans les nouveaux projets.
Fondamentalement, il inclut un support de middleware pour parsingr JSON dans request.POST, en plus de sérialiser le contexte renvoyé au format JSON ou de rendre un modèle / une redirection conditionnelle en fonction du type de requête.
Cette approche diffère des autres frameworks (tels que django-piston) en ce sens que vous n’avez pas besoin de créer des gestionnaires séparés pour les demandes d’API. Vous pouvez également réutiliser votre logique de vue existante et continuer à utiliser la validation de formulaire, etc., comme des vues normales.
Je ne sais pas si ce projet peut vous être utile, mais envoyer un lien peut difficilement faire mal. Jetez un coup d’oeil à django-apibuilder, disponible sur http://opensource.washingtontimes.com/projects/django-apibuilder/ . Peut-être que cela peut être utile?
/ Jesper
Regardez ce RestifyDjango .
Django XML-RPC et JSON-RPC sont relativement liés.
https://github.com/RueLaLa/savory-pie
Savory Pie est un framework REST qui supporte django.
Je suggère que vous examiniez Django Rest Framework (DRF), jouez avec ceci et voyez si cela correspond à vos besoins. La raison pour laquelle je recommande DRF est que cela rend les vues de l’API très simples avec l’utilisation des classes GenericAPIView, des classes Mixin et des vues génériques Mixed in. Vous pouvez facilement utiliser des modèles de conception testés et éprouvés pour créer vos points de terminaison d’API et conserver une base de code claire et concise. Vous pouvez aussi sécher lorsque vous écrivez votre code, ce qui est toujours génial. Vos vues API sont littéralement longues de 2 ou 3 lignes.
Vous pouvez consulter ce tutoriel http://programmathics.com/programming/python/django-rest-framework-setup/ qui commence par la configuration de votre environnement en passant par les différentes manières de créer votre API RESTful en utilisant la structure django rest.
Disclaimer: Je suis le créateur de ce site.