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