2008-10-17 5 views
20

J'ai une application django à laquelle j'aimerais ajouter des interfaces de repos. J'ai vu http://code.google.com/p/django-rest-interface/ mais il semble être assez simpliste. Par exemple, il ne semble pas y avoir de moyen d'imposer la sécurité. Comment pourrais-je limiter ce que les gens peuvent voir et manipuler à travers l'interface de repos? Normalement, je mettrais ce genre de logique dans mes opinions. Est-ce le bon endroit ou devrais-je déplacer plus de logique dans le modèle? Sinon, y a-t-il une meilleure bibliothèque ou dois-je lancer la mienne?Utiliser django-rest-interface

Répondre

12

je regarderais en utilisant l'application http://bitbucket.org/jespern/django-piston/wiki/Home django-piston si la sécurité est votre principale préoccupation.

J'ai utilisé django-rest-interface dans le passé, son fiable et pourtant simple peut être assez puissant, mais django-piston semble plus flexible à l'avenir.

3

Eh bien, du point de vue des choses, il y a un authentication paramètre à Collection. (voir cet exemple: authentication.py)

Deuxièmement, (même si Django ne l'a pas encore), il devrait probablement y avoir un middleware qui vérifie la forme CSRF/XSRF. (Oh, il semble be one.) Vous devriez également être en mesure d'utiliser le login_required and permission_required decorators dans le urls.py.

3

Même avec le paramètre Authentication, vous n'avez pas de contrôle précis sur ce que les utilisateurs peuvent faire. L'implémentation actuelle de l'interface Django-REST ne suit pas les informations de l'utilisateur, vous ne disposez donc pas de ces informations pour effectuer des vérifications d'autorisation détaillées.

Voir Issue #32.

Cependant, il est relativement facile de l'étendre pour ajouter quelques fonctionnalités. J'utilise beaucoup de sous-classes pour ajouter des fonctionnalités.

La mise à jour de la demande avec des informations de connexion est cependant difficile dans Django. Plutôt que de le faire, je laisse l'information dans la collection.

À l'heure actuelle, j'estime qu'entre les correctifs et les sous-classes, ce que j'ai écrit est à peu près aussi important que le roulement de mes propres fonctions de vue RESTful. Cependant, Django-REST gère avec élégance et avec régularité l'authentification par Digest HTTP. Je ne suis pas impatient de remplacer le leur avec une sorte de décorateur pour mes fonctions de vue Django.

[Peut-être que nous devrions ouvrir un projet de forge de source et élaborer un remplacement propre?]

+0

google code semble être l'hébergement préféré pour les applications django réutilisables (je ne sais pas pourquoi) – Jiaaro

+0

@ S.Lott: Vous avez suggéré un projet sourceforge; Je pense que @Jim Robert suggérait d'utiliser Google Code à la place, car il semble être la solution d'hébergement dominante pour les applications Django en général, sans commenter le niveau de contrôle de sécurité lui-même. –

+0

@Hank Gay: Merci. Le code Google est probablement préféré parce que Google a pris un grand engagement envers Python. –

2

S'il vous plaît jeter un oeil à django-reste-cadre, je viens de passer de tastypie à ce nouveau cadre, fonctionne très bien!

http://django-rest-framework.org/

Surtout les vues en fonction de la classe et l'api! Explorable et beaucoup d'autres avantages (par exemple pour télécharger des images)