【发布时间】:2010-09-17 19:06:47
【问题描述】:
我有一个 django 应用程序,我想添加一些休息接口。我见过http://code.google.com/p/django-rest-interface/,但它似乎很简单。例如,它似乎没有强制执行安全性的方法。我将如何限制人们可以通过其余界面查看和操作的内容?通常我会把这种逻辑放在我的观点中。这是正确的地方还是我应该将更多的逻辑向下移动到模型中?或者那里有更好的图书馆还是我需要自己推出?
【问题讨论】:
我有一个 django 应用程序,我想添加一些休息接口。我见过http://code.google.com/p/django-rest-interface/,但它似乎很简单。例如,它似乎没有强制执行安全性的方法。我将如何限制人们可以通过其余界面查看和操作的内容?通常我会把这种逻辑放在我的观点中。这是正确的地方还是我应该将更多的逻辑向下移动到模型中?或者那里有更好的图书馆还是我需要自己推出?
【问题讨论】:
请看一下 django-rest-framework,我刚从 sweetpie 跨步到这个新框架,效果很好!
http://django-rest-framework.org/
尤其是基于类的视图和可浏览的 api!以及许多其他优势(例如上传图片)
【讨论】:
如果您主要关心安全性,我会考虑使用 django-piston http://bitbucket.org/jespern/django-piston/wiki/Home 应用程序。
我过去使用过 django-rest-interface,它可靠且虽然简单但功能强大,但 django-piston 似乎更灵活。
【讨论】:
即使使用 Authentication 参数,您也无法精细控制人们可以做什么。 Django-REST 接口的当前实现不跟踪用户信息,因此您没有这些信息可用于进行细粒度的授权检查。
但是,扩展它以添加一些功能相对容易。我使用了很多子类来添加功能。
然而,在 Django 中使用登录信息更新请求是很棘手的。我没有这样做,而是将信息留在集合中。
现在,我估计在补丁和子类之间,我编写的内容与滚动我自己的 RESTful 视图函数一样大。
然而,Django-REST 优雅而整洁地处理 HTTP Digest 身份验证。我不期待为我的 Django 视图函数用某种装饰器替换它们。
[也许我们应该打开一个源代码伪造项目并找出一个干净的替代品?]
【讨论】:
嗯,从外观上看,Collection 有一个 authentication 参数。 (见这个例子:authentication.py)
其次,(即使 Django 还没有)应该有一个中间件来进行 CSRF/XSRF 表单检查。 (哦,好像有be one。)你应该也可以在urls.py中使用login_required and permission_required decorators。
【讨论】: