Mam aplikację django, do której chciałbym dodać kilka interfejsów odpoczynku. Widziałem http://code.google.com/p/django-rest-interface/, ale wydaje się to dość uproszczone. Na przykład wydaje się, że nie ma sposobu na egzekwowanie bezpieczeństwa. Jak miałbym ograniczać to, co ludzie mogą przeglądać i manipulować poprzez interfejs odpoczynku? Normalnie przedstawiałbym taką logikę w moich poglądach. Czy to właściwe miejsce, czy powinienem przenieść nieco więcej logiki do modelu? Czy jest tam jeszcze lepsza biblioteka, czy muszę przetrenować własną?Używanie django-rest-interface
Odpowiedz
Chciałbym spojrzeć w użyciu Django-tłokowe http://bitbucket.org/jespern/django-piston/wiki/Home wniosek, jeśli bezpieczeństwo jest głównym problemem.
W przeszłości korzystałam z interfejsu Django-Rest, jego niezawodność i choć prosta może być dość potężna, jednak tłok Django wydaje się bardziej elastyczny.
Cóż, z wyglądu rzeczy jest authentication
parametr do Collection
. (zobacz ten przykład: authentication.py)
Po drugie, (nawet jeśli Django jeszcze go nie ma) prawdopodobnie powinno istnieć oprogramowanie pośrednie, które sprawdza formularze CSRF/XSRF. (Och, wydaje się, że be one.) Powinieneś także móc używać login_required
and permission_required
decorators w urls.py.
Nawet z parametrem Uwierzytelnianie nie masz dokładnej kontroli nad tym, co ludzie mogą robić. Obecna implementacja interfejsu Django-REST nie śledzi informacji o użytkowniku, więc nie masz dostępu do tych informacji w celu przeprowadzenia dokładnych kontroli autoryzacji.
Zobacz Issue #32.
Jednak stosunkowo łatwo jest go rozszerzyć, aby dodać niektóre funkcje. Używam wielu podklas, aby dodać funkcje.
Aktualizacja żądania z danymi logowania jest jednak trudna w Django. Zamiast tego, pozostawię informacje w kolekcji.
W tej chwili oszacowałbym, że pomiędzy łatkami i podklasami, to co napisałem, jest tak duże, jak wywoływanie własnych funkcji widoku REST.
Django-REST jednak z wdziękiem i zgrabnie obsługuje uwierzytelnianie HTTP Digest. Nie mam zamiaru zastępować ich jakimś dekoratorem dla moich funkcji widoku Django.
[Może powinniśmy otworzyć projekt kuźni źródłowego i wypracować czystej wymiany?]
Proszę spojrzeć na django-rest-framework, właśnie przeszedłem z tastypie do tego nowego frameworka, działa wspaniale!
http://django-rest-framework.org/
Zwłaszcza poglądy oparte klasy i przeglądania api! i wiele innych zalet (np. do przesyłania obrazów)
- 1. Używanie ContentResolver
- 2. Używanie django.db.connection.queries
- 3. Używanie XmlTextReader
- 4. Używanie scala.util.control.Exception
- 5. Używanie SecureString
- 6. Używanie ACTION_CAPTIVE_PORTAL_SIGN_IN
- 7. Używanie jQuery.data
- 8. Używanie $ translateProvider.useUrlLoader
- 9. Używanie kodu Visual Studio i używanie zdefiniowanych symboli
- 10. Używanie RabbitMQ z nServiceBus (dla C#) vs używanie Amazon SQS
- 11. Używanie javax.xml.ws.Endpoint z HTTPS
- 12. Używanie danych JSON
- 13. Używanie waitpid lub sigaction?
- 14. Używanie => w PHP
- 15. Używanie Mercurial z Perforce
- 16. Używanie przeglądarki przewodowej http
- 17. Używanie QTQuick z haskell
- 18. Używanie GIT z Joomla
- 19. C: Używanie funkcji memset
- 20. Używanie Qt z DirectX?
- 21. Używanie boost.asio w cMake
- 22. Używanie :: w C++
- 23. Używanie D3 z Elmem
- 24. Stan. Używanie celu + = składnia
- 25. Używanie ggplot2 w gWidgetsRGtk2
- 26. Używanie Jupytera za proxy
- 27. Używanie NUnit z PCL
- 28. Używanie Tidhttp z Twebbrowser
- 29. Używanie Meteor z Requirejs
- 30. Używanie niezdefiniowanej stałej
Kod google wydaje się być preferowanym hostingiem dla aplikacji django wielokrotnego użytku (nie jestem pewien dlaczego) – Jiaaro
@ S.Lott: Zasugerowałeś projekt sourceforge; Uważam, że @Jim Robert sugerował używanie kodu Google, ponieważ wydaje się być dominującym rozwiązaniem hostingowym dla aplikacji Django, nie komentując samego poziomu kontroli bezpieczeństwa. –
@Hank Gay: Dzięki. Kod Google jest prawdopodobnie preferowany, ponieważ firma Google mocno zaangażowała się w Python. –