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
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.
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.
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?]
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)
- 1. Quand utiliser POJO et Quand utiliser SLSB
- 2. Utiliser RadToolTip avec RadComboBox sans utiliser ItemTempalte
- 3. Comment: Utiliser MvcContrib.Pagination sans utiliser MvcContrib.Grid Voir
- 4. Utiliser ObjectDataProvider
- 5. Quand utiliser l'activateur et quand utiliser la méthode d'usine?
- 6. OpenGL - utiliser ou ne pas utiliser? pourquoi - Application iPhone dev
- 7. Pour utiliser ViewData ou ne pas utiliser ViewData
- 8. Utiliser Oracle Exception
- 9. CompositeWPF: EventAggregator - quand utiliser?
- 10. Utiliser $ @ pour bien
- 11. CIImage: Comment utiliser CIAffineTransform?
- 12. GZIP sans utiliser IIS?
- 13. Comment utiliser IHTTPAsyncHandler?
- 14. Pourquoi utiliser document.write?
- 15. quand utiliser un singleton?
- 16. Quelle collection générique utiliser?
- 17. utiliser contrôleur dans helper
- 18. Utiliser l'attribut ou sélecteur
- 19. Comment utiliser sprof?
- 20. JTidy Node.findBody() - Comment utiliser?
- 21. Pourquoi utiliser mysqli_close()?
- 22. Acts_as_ferret utiliser l'index unique
- 23. Comment utiliser les typelists
- 24. Comment utiliser Degrafa AutoShapes
- 25. Utiliser FileChooserButton dans GTK +
- 26. Comment utiliser l'API rapidshare?
- 27. Utiliser ereg_replace en PHP?
- 28. Comment utiliser YUI
- 29. Comment utiliser dataTable?
- 30. expression rdlc iif utiliser?
google code semble être l'hébergement préféré pour les applications django réutilisables (je ne sais pas pourquoi) – Jiaaro
@ 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. –
@Hank Gay: Merci. Le code Google est probablement préféré parce que Google a pris un grand engagement envers Python. –