我们正在为Django项目寻找一般的RESTful API解决方案。我们首先使用API来进行网站上的Ajax调用,然后再使用移动应用程序,外部应用程序等等。
我找到了两个似乎被广泛使用的模块。 django-piston和django-tastypie
从我读到的内容来看,活塞似乎更老了,因此更成熟但可能有点过时了?! 虽然tastypie相对较新且记录良好。
最好的选择是什么? django-piston 或 django-tastypie ? 对我们来说很重要(按优先级排序):持续维护源,文档,稳定性和易用性。
编辑(2013年7月16日):
一年后,我们有一个明显的赢家。起初我们去了tastypie。我们有点喜欢。但经过半年左右的时间,我们转向即将到来的django-rest-framework并且从未回头。
我们最喜欢它:
不错的文档
活跃社区
清洁设计(基于django基于类的视图构建)
用于开发和调试的可浏览API
我们非常依赖API,因此支持(将来)是我们主要关注的问题之一。我们遇到了维护者 - 汤姆克里斯蒂 - (在线和离线),他似乎非常致力于这个项目。所以我们觉得使用django-rest-framework非常舒服。
答案 0 :(得分:29)
比较它们的好资源是http://www.djangopackages.com/grids/g/api/
Django-tastypie肯定是现在的保存选择。
如果您使用django 1.3,我个人主张查看django-rest-framework,因为它使用了基于新类的视图。 djangopackages.com的比较页面显示它具有良好的参与和活动。而且,哇,它肯定有一个nice browsable interface API。
答案 1 :(得分:24)
我对此没有经验,但我相信Pydanny:
django-piston近两年来几乎没有得到支持。那是 永恒,解决多个问题的分叉数量是一个 引起警报。因此,在这个时候我在这里 推荐django-tastypie。它是最新的,非常好 文档,支持OAUTH,并在Django中获得第二名 套餐thunderdome(它获得了近3倍的积分!)。另一个工具 要考虑的是Django Rest Framework,这和它一样好 django-tastypie但缺乏OAUTH支持。在django-piston前线,约书亚金斯伯格接管了缰绳 我们希望再看一些动作。在哪种情况下,我会 能够删除博文的这一部分。
来自Pydanny的blog。
答案 2 :(得分:18)
用django Piston,tastypie和django webmachine Django tastypie rock实现了API!话虽如此,我认为虽然当你的API模型靠近你的模型时,tastypie非常好,但是一旦你想要开箱即用,做一些事情会有点复杂。某些issues有变通方法,而其他人则需要做更多的弯曲而不是构建。它可能仍然覆盖了90%的django用例。
Afaik Webmachine仿照流行的erlang webmachine,但最近并不是非常活跃。因此,活塞和活动会产生一些活动和活动。活塞有点灵活,但是tastypie的移动速度非常快,而且我认为它有一个非常简单的API。
我的建议是在tastypie中快速实现API的原型,看看它是否涵盖了你想要做的事情。
答案 3 :(得分:5)
Django REST framework 2.0为anounced in Oct 2012,现在支持OAuth开箱即用。我真正喜欢的是Web browseable API,这在开发API时非常有用,但在有人实现您的API时也是如此。它与使用Django管理网站检查您的模型相当。结构和数据,但随后为您的API。文档也非常好。
从他们的网站:
Django REST框架是一个功能强大且灵活的工具包 易于构建Web API。
您可能希望使用REST框架的一些原因:
- Web浏览器API为您的开发人员带来了巨大的可用性。
- 验证政策,包括开箱即用的OAuth1a和OAuth2。
- 支持ORM和非ORM数据源的序列化。
- 可自定义 - 只需使用常规的基于功能的视图,如果您不需要更强大的功能。
- 广泛的文档和良好的社区支持。
查看他们的Quickstart指南,快速了解其工作原理。