2008-10-17 25 views
20

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

12

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.

3

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.

3

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?]

+0

Kod google wydaje się być preferowanym hostingiem dla aplikacji django wielokrotnego użytku (nie jestem pewien dlaczego) – Jiaaro

+0

@ 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. –

+0

@Hank Gay: Dzięki. Kod Google jest prawdopodobnie preferowany, ponieważ firma Google mocno zaangażowała się w Python. –

2

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)