У меня есть приложение django, с которым я хотел бы добавить некоторые интерфейсы для отдыха. Я видел http://code.google.com/p/django-rest-interface/, но он выглядит довольно упрощенным. Например, у него, похоже, нет способа обеспечения безопасности. Как я могу ограничить то, что люди могут просматривать и манипулировать через интерфейс остального? Обычно я ставил такую логику в своих взглядах. Является ли это подходящим местом или мне нужно переместить еще немного логики в модель? Альтернативно, там есть лучшая библиотека или мне нужно катиться самостоятельно?
Использование интерфейса django-rest
Ответ 1
Я бы рассмотрел использование django-piston http://bitbucket.org/jespern/django-piston/wiki/Home, если безопасность является вашей главной задачей.
Я использовал django-rest-интерфейс в прошлом, его надежный и хотя простой может быть довольно мощным, однако django-piston выглядит более гибким в будущем.
Ответ 2
Ну, с точки зрения вещей, есть параметр authentication
для Collection
. (см. этот пример: authentication.py)
Во-вторых, (даже если Django еще не имеет этого), вероятно, должно быть промежуточное программное обеспечение, которое выполняет проверку формы CSRF/XSRF. (О, кажется, быть одним.) Вы также должны иметь возможность использовать login_required
и permission_required
decorators в urls.py.
Ответ 3
Даже с параметром Аутентификация у вас нет мелкомасштабного контроля над тем, что люди могут делать. Текущая реализация интерфейса Django-REST не отслеживает пользовательскую информацию, поэтому у вас нет этой информации для выполнения мелкомасштабных проверок авторизации.
См. Проблема № 32.
Однако относительно легко расширить его, чтобы добавить некоторые функции. Для добавления функций я использую много подклассов.
Обновление запроса с регистрационной информацией, однако, сложно в Django. Вместо этого я оставляю информацию в Сборнике.
Прямо сейчас, я бы оценил, что между патчами и подклассами то, что я написал, примерно такое же, как и перенос моих собственных функций представления RESTful.
Django-REST, однако, изящно и аккуратно обрабатывает аутентификацию HTTP Digest. Я не с нетерпением жду замены их на какой-то декоратор для своих функций просмотра Django.
[Возможно, нам стоит открыть исходный проект кузницы и выработать чистую замену?]
Ответ 4
Пожалуйста, взгляните на django-rest-framework, я просто перешел от tastypie к этой новой структуре, отлично работает!
http://django-rest-framework.org/
В частности, классы, основанные на просмотрах и просматриваемые api! и многие другие преимущества (например, загрузка изображений)